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     * <code>optional bool cross_project_duplication_activated = 5;</code>
075     */
076    boolean hasCrossProjectDuplicationActivated();
077    /**
078     * <code>optional bool cross_project_duplication_activated = 5;</code>
079     */
080    boolean getCrossProjectDuplicationActivated();
081  }
082  /**
083   * Protobuf type {@code Metadata}
084   */
085  public  static final class Metadata extends
086      com.google.protobuf.GeneratedMessage implements
087      // @@protoc_insertion_point(message_implements:Metadata)
088      MetadataOrBuilder {
089    // Use Metadata.newBuilder() to construct.
090    private Metadata(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
091      super(builder);
092    }
093    private Metadata() {
094      analysisDate_ = 0L;
095      projectKey_ = "";
096      branch_ = "";
097      rootComponentRef_ = 0;
098      crossProjectDuplicationActivated_ = false;
099    }
100
101    @java.lang.Override
102    public final com.google.protobuf.UnknownFieldSet
103    getUnknownFields() {
104      return this.unknownFields;
105    }
106    private Metadata(
107        com.google.protobuf.CodedInputStream input,
108        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
109      this();
110      int mutable_bitField0_ = 0;
111      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
112          com.google.protobuf.UnknownFieldSet.newBuilder();
113      try {
114        boolean done = false;
115        while (!done) {
116          int tag = input.readTag();
117          switch (tag) {
118            case 0:
119              done = true;
120              break;
121            default: {
122              if (!parseUnknownField(input, unknownFields,
123                                     extensionRegistry, tag)) {
124                done = true;
125              }
126              break;
127            }
128            case 8: {
129              bitField0_ |= 0x00000001;
130              analysisDate_ = input.readInt64();
131              break;
132            }
133            case 18: {
134              com.google.protobuf.ByteString bs = input.readBytes();
135              bitField0_ |= 0x00000002;
136              projectKey_ = bs;
137              break;
138            }
139            case 26: {
140              com.google.protobuf.ByteString bs = input.readBytes();
141              bitField0_ |= 0x00000004;
142              branch_ = bs;
143              break;
144            }
145            case 32: {
146              bitField0_ |= 0x00000008;
147              rootComponentRef_ = input.readInt32();
148              break;
149            }
150            case 40: {
151              bitField0_ |= 0x00000010;
152              crossProjectDuplicationActivated_ = input.readBool();
153              break;
154            }
155          }
156        }
157      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
158        throw new RuntimeException(e.setUnfinishedMessage(this));
159      } catch (java.io.IOException e) {
160        throw new RuntimeException(
161            new com.google.protobuf.InvalidProtocolBufferException(
162                e.getMessage()).setUnfinishedMessage(this));
163      } finally {
164        this.unknownFields = unknownFields.build();
165        makeExtensionsImmutable();
166      }
167    }
168    public static final com.google.protobuf.Descriptors.Descriptor
169        getDescriptor() {
170      return org.sonar.batch.protocol.output.BatchReport.internal_static_Metadata_descriptor;
171    }
172
173    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
174        internalGetFieldAccessorTable() {
175      return org.sonar.batch.protocol.output.BatchReport.internal_static_Metadata_fieldAccessorTable
176          .ensureFieldAccessorsInitialized(
177              org.sonar.batch.protocol.output.BatchReport.Metadata.class, org.sonar.batch.protocol.output.BatchReport.Metadata.Builder.class);
178    }
179
180    private int bitField0_;
181    public static final int ANALYSIS_DATE_FIELD_NUMBER = 1;
182    private long analysisDate_;
183    /**
184     * <code>optional int64 analysis_date = 1;</code>
185     */
186    public boolean hasAnalysisDate() {
187      return ((bitField0_ & 0x00000001) == 0x00000001);
188    }
189    /**
190     * <code>optional int64 analysis_date = 1;</code>
191     */
192    public long getAnalysisDate() {
193      return analysisDate_;
194    }
195
196    public static final int PROJECT_KEY_FIELD_NUMBER = 2;
197    private volatile java.lang.Object projectKey_;
198    /**
199     * <code>optional string project_key = 2;</code>
200     *
201     * <pre>
202     * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
203     * </pre>
204     */
205    public boolean hasProjectKey() {
206      return ((bitField0_ & 0x00000002) == 0x00000002);
207    }
208    /**
209     * <code>optional string project_key = 2;</code>
210     *
211     * <pre>
212     * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
213     * </pre>
214     */
215    public java.lang.String getProjectKey() {
216      java.lang.Object ref = projectKey_;
217      if (ref instanceof java.lang.String) {
218        return (java.lang.String) ref;
219      } else {
220        com.google.protobuf.ByteString bs = 
221            (com.google.protobuf.ByteString) ref;
222        java.lang.String s = bs.toStringUtf8();
223        if (bs.isValidUtf8()) {
224          projectKey_ = s;
225        }
226        return s;
227      }
228    }
229    /**
230     * <code>optional string project_key = 2;</code>
231     *
232     * <pre>
233     * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
234     * </pre>
235     */
236    public com.google.protobuf.ByteString
237        getProjectKeyBytes() {
238      java.lang.Object ref = projectKey_;
239      if (ref instanceof java.lang.String) {
240        com.google.protobuf.ByteString b = 
241            com.google.protobuf.ByteString.copyFromUtf8(
242                (java.lang.String) ref);
243        projectKey_ = b;
244        return b;
245      } else {
246        return (com.google.protobuf.ByteString) ref;
247      }
248    }
249
250    public static final int BRANCH_FIELD_NUMBER = 3;
251    private volatile java.lang.Object branch_;
252    /**
253     * <code>optional string branch = 3;</code>
254     */
255    public boolean hasBranch() {
256      return ((bitField0_ & 0x00000004) == 0x00000004);
257    }
258    /**
259     * <code>optional string branch = 3;</code>
260     */
261    public java.lang.String getBranch() {
262      java.lang.Object ref = branch_;
263      if (ref instanceof java.lang.String) {
264        return (java.lang.String) ref;
265      } else {
266        com.google.protobuf.ByteString bs = 
267            (com.google.protobuf.ByteString) ref;
268        java.lang.String s = bs.toStringUtf8();
269        if (bs.isValidUtf8()) {
270          branch_ = s;
271        }
272        return s;
273      }
274    }
275    /**
276     * <code>optional string branch = 3;</code>
277     */
278    public com.google.protobuf.ByteString
279        getBranchBytes() {
280      java.lang.Object ref = branch_;
281      if (ref instanceof java.lang.String) {
282        com.google.protobuf.ByteString b = 
283            com.google.protobuf.ByteString.copyFromUtf8(
284                (java.lang.String) ref);
285        branch_ = b;
286        return b;
287      } else {
288        return (com.google.protobuf.ByteString) ref;
289      }
290    }
291
292    public static final int ROOT_COMPONENT_REF_FIELD_NUMBER = 4;
293    private int rootComponentRef_;
294    /**
295     * <code>optional int32 root_component_ref = 4;</code>
296     */
297    public boolean hasRootComponentRef() {
298      return ((bitField0_ & 0x00000008) == 0x00000008);
299    }
300    /**
301     * <code>optional int32 root_component_ref = 4;</code>
302     */
303    public int getRootComponentRef() {
304      return rootComponentRef_;
305    }
306
307    public static final int CROSS_PROJECT_DUPLICATION_ACTIVATED_FIELD_NUMBER = 5;
308    private boolean crossProjectDuplicationActivated_;
309    /**
310     * <code>optional bool cross_project_duplication_activated = 5;</code>
311     */
312    public boolean hasCrossProjectDuplicationActivated() {
313      return ((bitField0_ & 0x00000010) == 0x00000010);
314    }
315    /**
316     * <code>optional bool cross_project_duplication_activated = 5;</code>
317     */
318    public boolean getCrossProjectDuplicationActivated() {
319      return crossProjectDuplicationActivated_;
320    }
321
322    private byte memoizedIsInitialized = -1;
323    public final boolean isInitialized() {
324      byte isInitialized = memoizedIsInitialized;
325      if (isInitialized == 1) return true;
326      if (isInitialized == 0) return false;
327
328      memoizedIsInitialized = 1;
329      return true;
330    }
331
332    public void writeTo(com.google.protobuf.CodedOutputStream output)
333                        throws java.io.IOException {
334      if (((bitField0_ & 0x00000001) == 0x00000001)) {
335        output.writeInt64(1, analysisDate_);
336      }
337      if (((bitField0_ & 0x00000002) == 0x00000002)) {
338        com.google.protobuf.GeneratedMessage.writeString(output, 2, projectKey_);
339      }
340      if (((bitField0_ & 0x00000004) == 0x00000004)) {
341        com.google.protobuf.GeneratedMessage.writeString(output, 3, branch_);
342      }
343      if (((bitField0_ & 0x00000008) == 0x00000008)) {
344        output.writeInt32(4, rootComponentRef_);
345      }
346      if (((bitField0_ & 0x00000010) == 0x00000010)) {
347        output.writeBool(5, crossProjectDuplicationActivated_);
348      }
349      unknownFields.writeTo(output);
350    }
351
352    public int getSerializedSize() {
353      int size = memoizedSize;
354      if (size != -1) return size;
355
356      size = 0;
357      if (((bitField0_ & 0x00000001) == 0x00000001)) {
358        size += com.google.protobuf.CodedOutputStream
359          .computeInt64Size(1, analysisDate_);
360      }
361      if (((bitField0_ & 0x00000002) == 0x00000002)) {
362        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, projectKey_);
363      }
364      if (((bitField0_ & 0x00000004) == 0x00000004)) {
365        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, branch_);
366      }
367      if (((bitField0_ & 0x00000008) == 0x00000008)) {
368        size += com.google.protobuf.CodedOutputStream
369          .computeInt32Size(4, rootComponentRef_);
370      }
371      if (((bitField0_ & 0x00000010) == 0x00000010)) {
372        size += com.google.protobuf.CodedOutputStream
373          .computeBoolSize(5, crossProjectDuplicationActivated_);
374      }
375      size += unknownFields.getSerializedSize();
376      memoizedSize = size;
377      return size;
378    }
379
380    private static final long serialVersionUID = 0L;
381    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(
382        com.google.protobuf.ByteString data)
383        throws com.google.protobuf.InvalidProtocolBufferException {
384      return PARSER.parseFrom(data);
385    }
386    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(
387        com.google.protobuf.ByteString data,
388        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
389        throws com.google.protobuf.InvalidProtocolBufferException {
390      return PARSER.parseFrom(data, extensionRegistry);
391    }
392    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(byte[] data)
393        throws com.google.protobuf.InvalidProtocolBufferException {
394      return PARSER.parseFrom(data);
395    }
396    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(
397        byte[] data,
398        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
399        throws com.google.protobuf.InvalidProtocolBufferException {
400      return PARSER.parseFrom(data, extensionRegistry);
401    }
402    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(java.io.InputStream input)
403        throws java.io.IOException {
404      return PARSER.parseFrom(input);
405    }
406    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(
407        java.io.InputStream input,
408        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
409        throws java.io.IOException {
410      return PARSER.parseFrom(input, extensionRegistry);
411    }
412    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseDelimitedFrom(java.io.InputStream input)
413        throws java.io.IOException {
414      return PARSER.parseDelimitedFrom(input);
415    }
416    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseDelimitedFrom(
417        java.io.InputStream input,
418        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
419        throws java.io.IOException {
420      return PARSER.parseDelimitedFrom(input, extensionRegistry);
421    }
422    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(
423        com.google.protobuf.CodedInputStream input)
424        throws java.io.IOException {
425      return PARSER.parseFrom(input);
426    }
427    public static org.sonar.batch.protocol.output.BatchReport.Metadata parseFrom(
428        com.google.protobuf.CodedInputStream input,
429        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
430        throws java.io.IOException {
431      return PARSER.parseFrom(input, extensionRegistry);
432    }
433
434    public Builder newBuilderForType() { return newBuilder(); }
435    public static Builder newBuilder() {
436      return DEFAULT_INSTANCE.toBuilder();
437    }
438    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Metadata prototype) {
439      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
440    }
441    public Builder toBuilder() {
442      return this == DEFAULT_INSTANCE
443          ? new Builder() : new Builder().mergeFrom(this);
444    }
445
446    @java.lang.Override
447    protected Builder newBuilderForType(
448        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
449      Builder builder = new Builder(parent);
450      return builder;
451    }
452    /**
453     * Protobuf type {@code Metadata}
454     */
455    public static final class Builder extends
456        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
457        // @@protoc_insertion_point(builder_implements:Metadata)
458        org.sonar.batch.protocol.output.BatchReport.MetadataOrBuilder {
459      public static final com.google.protobuf.Descriptors.Descriptor
460          getDescriptor() {
461        return org.sonar.batch.protocol.output.BatchReport.internal_static_Metadata_descriptor;
462      }
463
464      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
465          internalGetFieldAccessorTable() {
466        return org.sonar.batch.protocol.output.BatchReport.internal_static_Metadata_fieldAccessorTable
467            .ensureFieldAccessorsInitialized(
468                org.sonar.batch.protocol.output.BatchReport.Metadata.class, org.sonar.batch.protocol.output.BatchReport.Metadata.Builder.class);
469      }
470
471      // Construct using org.sonar.batch.protocol.output.BatchReport.Metadata.newBuilder()
472      private Builder() {
473        maybeForceBuilderInitialization();
474      }
475
476      private Builder(
477          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
478        super(parent);
479        maybeForceBuilderInitialization();
480      }
481      private void maybeForceBuilderInitialization() {
482        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
483        }
484      }
485      public Builder clear() {
486        super.clear();
487        analysisDate_ = 0L;
488        bitField0_ = (bitField0_ & ~0x00000001);
489        projectKey_ = "";
490        bitField0_ = (bitField0_ & ~0x00000002);
491        branch_ = "";
492        bitField0_ = (bitField0_ & ~0x00000004);
493        rootComponentRef_ = 0;
494        bitField0_ = (bitField0_ & ~0x00000008);
495        crossProjectDuplicationActivated_ = false;
496        bitField0_ = (bitField0_ & ~0x00000010);
497        return this;
498      }
499
500      public com.google.protobuf.Descriptors.Descriptor
501          getDescriptorForType() {
502        return org.sonar.batch.protocol.output.BatchReport.internal_static_Metadata_descriptor;
503      }
504
505      public org.sonar.batch.protocol.output.BatchReport.Metadata getDefaultInstanceForType() {
506        return org.sonar.batch.protocol.output.BatchReport.Metadata.getDefaultInstance();
507      }
508
509      public org.sonar.batch.protocol.output.BatchReport.Metadata build() {
510        org.sonar.batch.protocol.output.BatchReport.Metadata result = buildPartial();
511        if (!result.isInitialized()) {
512          throw newUninitializedMessageException(result);
513        }
514        return result;
515      }
516
517      public org.sonar.batch.protocol.output.BatchReport.Metadata buildPartial() {
518        org.sonar.batch.protocol.output.BatchReport.Metadata result = new org.sonar.batch.protocol.output.BatchReport.Metadata(this);
519        int from_bitField0_ = bitField0_;
520        int to_bitField0_ = 0;
521        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
522          to_bitField0_ |= 0x00000001;
523        }
524        result.analysisDate_ = analysisDate_;
525        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
526          to_bitField0_ |= 0x00000002;
527        }
528        result.projectKey_ = projectKey_;
529        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
530          to_bitField0_ |= 0x00000004;
531        }
532        result.branch_ = branch_;
533        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
534          to_bitField0_ |= 0x00000008;
535        }
536        result.rootComponentRef_ = rootComponentRef_;
537        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
538          to_bitField0_ |= 0x00000010;
539        }
540        result.crossProjectDuplicationActivated_ = crossProjectDuplicationActivated_;
541        result.bitField0_ = to_bitField0_;
542        onBuilt();
543        return result;
544      }
545
546      public Builder mergeFrom(com.google.protobuf.Message other) {
547        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Metadata) {
548          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Metadata)other);
549        } else {
550          super.mergeFrom(other);
551          return this;
552        }
553      }
554
555      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Metadata other) {
556        if (other == org.sonar.batch.protocol.output.BatchReport.Metadata.getDefaultInstance()) return this;
557        if (other.hasAnalysisDate()) {
558          setAnalysisDate(other.getAnalysisDate());
559        }
560        if (other.hasProjectKey()) {
561          bitField0_ |= 0x00000002;
562          projectKey_ = other.projectKey_;
563          onChanged();
564        }
565        if (other.hasBranch()) {
566          bitField0_ |= 0x00000004;
567          branch_ = other.branch_;
568          onChanged();
569        }
570        if (other.hasRootComponentRef()) {
571          setRootComponentRef(other.getRootComponentRef());
572        }
573        if (other.hasCrossProjectDuplicationActivated()) {
574          setCrossProjectDuplicationActivated(other.getCrossProjectDuplicationActivated());
575        }
576        this.mergeUnknownFields(other.unknownFields);
577        onChanged();
578        return this;
579      }
580
581      public final boolean isInitialized() {
582        return true;
583      }
584
585      public Builder mergeFrom(
586          com.google.protobuf.CodedInputStream input,
587          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
588          throws java.io.IOException {
589        org.sonar.batch.protocol.output.BatchReport.Metadata parsedMessage = null;
590        try {
591          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
592        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
593          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Metadata) e.getUnfinishedMessage();
594          throw e;
595        } finally {
596          if (parsedMessage != null) {
597            mergeFrom(parsedMessage);
598          }
599        }
600        return this;
601      }
602      private int bitField0_;
603
604      private long analysisDate_ ;
605      /**
606       * <code>optional int64 analysis_date = 1;</code>
607       */
608      public boolean hasAnalysisDate() {
609        return ((bitField0_ & 0x00000001) == 0x00000001);
610      }
611      /**
612       * <code>optional int64 analysis_date = 1;</code>
613       */
614      public long getAnalysisDate() {
615        return analysisDate_;
616      }
617      /**
618       * <code>optional int64 analysis_date = 1;</code>
619       */
620      public Builder setAnalysisDate(long value) {
621        bitField0_ |= 0x00000001;
622        analysisDate_ = value;
623        onChanged();
624        return this;
625      }
626      /**
627       * <code>optional int64 analysis_date = 1;</code>
628       */
629      public Builder clearAnalysisDate() {
630        bitField0_ = (bitField0_ & ~0x00000001);
631        analysisDate_ = 0L;
632        onChanged();
633        return this;
634      }
635
636      private java.lang.Object projectKey_ = "";
637      /**
638       * <code>optional string project_key = 2;</code>
639       *
640       * <pre>
641       * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
642       * </pre>
643       */
644      public boolean hasProjectKey() {
645        return ((bitField0_ & 0x00000002) == 0x00000002);
646      }
647      /**
648       * <code>optional string project_key = 2;</code>
649       *
650       * <pre>
651       * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
652       * </pre>
653       */
654      public java.lang.String getProjectKey() {
655        java.lang.Object ref = projectKey_;
656        if (!(ref instanceof java.lang.String)) {
657          com.google.protobuf.ByteString bs =
658              (com.google.protobuf.ByteString) ref;
659          java.lang.String s = bs.toStringUtf8();
660          if (bs.isValidUtf8()) {
661            projectKey_ = s;
662          }
663          return s;
664        } else {
665          return (java.lang.String) ref;
666        }
667      }
668      /**
669       * <code>optional string project_key = 2;</code>
670       *
671       * <pre>
672       * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
673       * </pre>
674       */
675      public com.google.protobuf.ByteString
676          getProjectKeyBytes() {
677        java.lang.Object ref = projectKey_;
678        if (ref instanceof String) {
679          com.google.protobuf.ByteString b = 
680              com.google.protobuf.ByteString.copyFromUtf8(
681                  (java.lang.String) ref);
682          projectKey_ = b;
683          return b;
684        } else {
685          return (com.google.protobuf.ByteString) ref;
686        }
687      }
688      /**
689       * <code>optional string project_key = 2;</code>
690       *
691       * <pre>
692       * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
693       * </pre>
694       */
695      public Builder setProjectKey(
696          java.lang.String value) {
697        if (value == null) {
698    throw new NullPointerException();
699  }
700  bitField0_ |= 0x00000002;
701        projectKey_ = value;
702        onChanged();
703        return this;
704      }
705      /**
706       * <code>optional string project_key = 2;</code>
707       *
708       * <pre>
709       * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
710       * </pre>
711       */
712      public Builder clearProjectKey() {
713        bitField0_ = (bitField0_ & ~0x00000002);
714        projectKey_ = getDefaultInstance().getProjectKey();
715        onChanged();
716        return this;
717      }
718      /**
719       * <code>optional string project_key = 2;</code>
720       *
721       * <pre>
722       * TODO should we keep this project_key here or not ? Because it's a duplication of Component.key
723       * </pre>
724       */
725      public Builder setProjectKeyBytes(
726          com.google.protobuf.ByteString value) {
727        if (value == null) {
728    throw new NullPointerException();
729  }
730  bitField0_ |= 0x00000002;
731        projectKey_ = value;
732        onChanged();
733        return this;
734      }
735
736      private java.lang.Object branch_ = "";
737      /**
738       * <code>optional string branch = 3;</code>
739       */
740      public boolean hasBranch() {
741        return ((bitField0_ & 0x00000004) == 0x00000004);
742      }
743      /**
744       * <code>optional string branch = 3;</code>
745       */
746      public java.lang.String getBranch() {
747        java.lang.Object ref = branch_;
748        if (!(ref instanceof java.lang.String)) {
749          com.google.protobuf.ByteString bs =
750              (com.google.protobuf.ByteString) ref;
751          java.lang.String s = bs.toStringUtf8();
752          if (bs.isValidUtf8()) {
753            branch_ = s;
754          }
755          return s;
756        } else {
757          return (java.lang.String) ref;
758        }
759      }
760      /**
761       * <code>optional string branch = 3;</code>
762       */
763      public com.google.protobuf.ByteString
764          getBranchBytes() {
765        java.lang.Object ref = branch_;
766        if (ref instanceof String) {
767          com.google.protobuf.ByteString b = 
768              com.google.protobuf.ByteString.copyFromUtf8(
769                  (java.lang.String) ref);
770          branch_ = b;
771          return b;
772        } else {
773          return (com.google.protobuf.ByteString) ref;
774        }
775      }
776      /**
777       * <code>optional string branch = 3;</code>
778       */
779      public Builder setBranch(
780          java.lang.String value) {
781        if (value == null) {
782    throw new NullPointerException();
783  }
784  bitField0_ |= 0x00000004;
785        branch_ = value;
786        onChanged();
787        return this;
788      }
789      /**
790       * <code>optional string branch = 3;</code>
791       */
792      public Builder clearBranch() {
793        bitField0_ = (bitField0_ & ~0x00000004);
794        branch_ = getDefaultInstance().getBranch();
795        onChanged();
796        return this;
797      }
798      /**
799       * <code>optional string branch = 3;</code>
800       */
801      public Builder setBranchBytes(
802          com.google.protobuf.ByteString value) {
803        if (value == null) {
804    throw new NullPointerException();
805  }
806  bitField0_ |= 0x00000004;
807        branch_ = value;
808        onChanged();
809        return this;
810      }
811
812      private int rootComponentRef_ ;
813      /**
814       * <code>optional int32 root_component_ref = 4;</code>
815       */
816      public boolean hasRootComponentRef() {
817        return ((bitField0_ & 0x00000008) == 0x00000008);
818      }
819      /**
820       * <code>optional int32 root_component_ref = 4;</code>
821       */
822      public int getRootComponentRef() {
823        return rootComponentRef_;
824      }
825      /**
826       * <code>optional int32 root_component_ref = 4;</code>
827       */
828      public Builder setRootComponentRef(int value) {
829        bitField0_ |= 0x00000008;
830        rootComponentRef_ = value;
831        onChanged();
832        return this;
833      }
834      /**
835       * <code>optional int32 root_component_ref = 4;</code>
836       */
837      public Builder clearRootComponentRef() {
838        bitField0_ = (bitField0_ & ~0x00000008);
839        rootComponentRef_ = 0;
840        onChanged();
841        return this;
842      }
843
844      private boolean crossProjectDuplicationActivated_ ;
845      /**
846       * <code>optional bool cross_project_duplication_activated = 5;</code>
847       */
848      public boolean hasCrossProjectDuplicationActivated() {
849        return ((bitField0_ & 0x00000010) == 0x00000010);
850      }
851      /**
852       * <code>optional bool cross_project_duplication_activated = 5;</code>
853       */
854      public boolean getCrossProjectDuplicationActivated() {
855        return crossProjectDuplicationActivated_;
856      }
857      /**
858       * <code>optional bool cross_project_duplication_activated = 5;</code>
859       */
860      public Builder setCrossProjectDuplicationActivated(boolean value) {
861        bitField0_ |= 0x00000010;
862        crossProjectDuplicationActivated_ = value;
863        onChanged();
864        return this;
865      }
866      /**
867       * <code>optional bool cross_project_duplication_activated = 5;</code>
868       */
869      public Builder clearCrossProjectDuplicationActivated() {
870        bitField0_ = (bitField0_ & ~0x00000010);
871        crossProjectDuplicationActivated_ = false;
872        onChanged();
873        return this;
874      }
875
876      // @@protoc_insertion_point(builder_scope:Metadata)
877    }
878
879    // @@protoc_insertion_point(class_scope:Metadata)
880    private static final org.sonar.batch.protocol.output.BatchReport.Metadata DEFAULT_INSTANCE;
881    static {
882      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Metadata();
883    }
884
885    public static org.sonar.batch.protocol.output.BatchReport.Metadata getDefaultInstance() {
886      return DEFAULT_INSTANCE;
887    }
888
889    @java.lang.Deprecated public static final com.google.protobuf.Parser<Metadata>
890        PARSER = new com.google.protobuf.AbstractParser<Metadata>() {
891      public Metadata parsePartialFrom(
892          com.google.protobuf.CodedInputStream input,
893          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
894          throws com.google.protobuf.InvalidProtocolBufferException {
895        try {
896          return new Metadata(input, extensionRegistry);
897        } catch (RuntimeException e) {
898          if (e.getCause() instanceof
899              com.google.protobuf.InvalidProtocolBufferException) {
900            throw (com.google.protobuf.InvalidProtocolBufferException)
901                e.getCause();
902          }
903          throw e;
904        }
905      }
906    };
907
908    public static com.google.protobuf.Parser<Metadata> parser() {
909      return PARSER;
910    }
911
912    @java.lang.Override
913    public com.google.protobuf.Parser<Metadata> getParserForType() {
914      return PARSER;
915    }
916
917    public org.sonar.batch.protocol.output.BatchReport.Metadata getDefaultInstanceForType() {
918      return DEFAULT_INSTANCE;
919    }
920
921  }
922
923  public interface ActiveRuleOrBuilder extends
924      // @@protoc_insertion_point(interface_extends:ActiveRule)
925      com.google.protobuf.MessageOrBuilder {
926
927    /**
928     * <code>optional string rule_repository = 1;</code>
929     */
930    boolean hasRuleRepository();
931    /**
932     * <code>optional string rule_repository = 1;</code>
933     */
934    java.lang.String getRuleRepository();
935    /**
936     * <code>optional string rule_repository = 1;</code>
937     */
938    com.google.protobuf.ByteString
939        getRuleRepositoryBytes();
940
941    /**
942     * <code>optional string rule_key = 2;</code>
943     */
944    boolean hasRuleKey();
945    /**
946     * <code>optional string rule_key = 2;</code>
947     */
948    java.lang.String getRuleKey();
949    /**
950     * <code>optional string rule_key = 2;</code>
951     */
952    com.google.protobuf.ByteString
953        getRuleKeyBytes();
954
955    /**
956     * <code>optional .Severity severity = 3;</code>
957     */
958    boolean hasSeverity();
959    /**
960     * <code>optional .Severity severity = 3;</code>
961     */
962    org.sonar.batch.protocol.Constants.Severity getSeverity();
963
964    /**
965     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
966     */
967    java.util.List<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam> 
968        getParamList();
969    /**
970     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
971     */
972    org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam getParam(int index);
973    /**
974     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
975     */
976    int getParamCount();
977    /**
978     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
979     */
980    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder> 
981        getParamOrBuilderList();
982    /**
983     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
984     */
985    org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder getParamOrBuilder(
986        int index);
987  }
988  /**
989   * Protobuf type {@code ActiveRule}
990   */
991  public  static final class ActiveRule extends
992      com.google.protobuf.GeneratedMessage implements
993      // @@protoc_insertion_point(message_implements:ActiveRule)
994      ActiveRuleOrBuilder {
995    // Use ActiveRule.newBuilder() to construct.
996    private ActiveRule(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
997      super(builder);
998    }
999    private ActiveRule() {
1000      ruleRepository_ = "";
1001      ruleKey_ = "";
1002      severity_ = 0;
1003      param_ = java.util.Collections.emptyList();
1004    }
1005
1006    @java.lang.Override
1007    public final com.google.protobuf.UnknownFieldSet
1008    getUnknownFields() {
1009      return this.unknownFields;
1010    }
1011    private ActiveRule(
1012        com.google.protobuf.CodedInputStream input,
1013        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
1014      this();
1015      int mutable_bitField0_ = 0;
1016      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
1017          com.google.protobuf.UnknownFieldSet.newBuilder();
1018      try {
1019        boolean done = false;
1020        while (!done) {
1021          int tag = input.readTag();
1022          switch (tag) {
1023            case 0:
1024              done = true;
1025              break;
1026            default: {
1027              if (!parseUnknownField(input, unknownFields,
1028                                     extensionRegistry, tag)) {
1029                done = true;
1030              }
1031              break;
1032            }
1033            case 10: {
1034              com.google.protobuf.ByteString bs = input.readBytes();
1035              bitField0_ |= 0x00000001;
1036              ruleRepository_ = bs;
1037              break;
1038            }
1039            case 18: {
1040              com.google.protobuf.ByteString bs = input.readBytes();
1041              bitField0_ |= 0x00000002;
1042              ruleKey_ = bs;
1043              break;
1044            }
1045            case 24: {
1046              int rawValue = input.readEnum();
1047              org.sonar.batch.protocol.Constants.Severity value = org.sonar.batch.protocol.Constants.Severity.valueOf(rawValue);
1048              if (value == null) {
1049                unknownFields.mergeVarintField(3, rawValue);
1050              } else {
1051                bitField0_ |= 0x00000004;
1052                severity_ = rawValue;
1053              }
1054              break;
1055            }
1056            case 34: {
1057              if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
1058                param_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam>();
1059                mutable_bitField0_ |= 0x00000008;
1060              }
1061              param_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.parser(), extensionRegistry));
1062              break;
1063            }
1064          }
1065        }
1066      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1067        throw new RuntimeException(e.setUnfinishedMessage(this));
1068      } catch (java.io.IOException e) {
1069        throw new RuntimeException(
1070            new com.google.protobuf.InvalidProtocolBufferException(
1071                e.getMessage()).setUnfinishedMessage(this));
1072      } finally {
1073        if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
1074          param_ = java.util.Collections.unmodifiableList(param_);
1075        }
1076        this.unknownFields = unknownFields.build();
1077        makeExtensionsImmutable();
1078      }
1079    }
1080    public static final com.google.protobuf.Descriptors.Descriptor
1081        getDescriptor() {
1082      return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_descriptor;
1083    }
1084
1085    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
1086        internalGetFieldAccessorTable() {
1087      return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_fieldAccessorTable
1088          .ensureFieldAccessorsInitialized(
1089              org.sonar.batch.protocol.output.BatchReport.ActiveRule.class, org.sonar.batch.protocol.output.BatchReport.ActiveRule.Builder.class);
1090    }
1091
1092    public interface ActiveRuleParamOrBuilder extends
1093        // @@protoc_insertion_point(interface_extends:ActiveRule.ActiveRuleParam)
1094        com.google.protobuf.MessageOrBuilder {
1095
1096      /**
1097       * <code>optional string key = 1;</code>
1098       */
1099      boolean hasKey();
1100      /**
1101       * <code>optional string key = 1;</code>
1102       */
1103      java.lang.String getKey();
1104      /**
1105       * <code>optional string key = 1;</code>
1106       */
1107      com.google.protobuf.ByteString
1108          getKeyBytes();
1109
1110      /**
1111       * <code>optional string value = 2;</code>
1112       */
1113      boolean hasValue();
1114      /**
1115       * <code>optional string value = 2;</code>
1116       */
1117      java.lang.String getValue();
1118      /**
1119       * <code>optional string value = 2;</code>
1120       */
1121      com.google.protobuf.ByteString
1122          getValueBytes();
1123    }
1124    /**
1125     * Protobuf type {@code ActiveRule.ActiveRuleParam}
1126     *
1127     * <pre>
1128     * TODO replace by map
1129     * </pre>
1130     */
1131    public  static final class ActiveRuleParam extends
1132        com.google.protobuf.GeneratedMessage implements
1133        // @@protoc_insertion_point(message_implements:ActiveRule.ActiveRuleParam)
1134        ActiveRuleParamOrBuilder {
1135      // Use ActiveRuleParam.newBuilder() to construct.
1136      private ActiveRuleParam(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
1137        super(builder);
1138      }
1139      private ActiveRuleParam() {
1140        key_ = "";
1141        value_ = "";
1142      }
1143
1144      @java.lang.Override
1145      public final com.google.protobuf.UnknownFieldSet
1146      getUnknownFields() {
1147        return this.unknownFields;
1148      }
1149      private ActiveRuleParam(
1150          com.google.protobuf.CodedInputStream input,
1151          com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
1152        this();
1153        int mutable_bitField0_ = 0;
1154        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
1155            com.google.protobuf.UnknownFieldSet.newBuilder();
1156        try {
1157          boolean done = false;
1158          while (!done) {
1159            int tag = input.readTag();
1160            switch (tag) {
1161              case 0:
1162                done = true;
1163                break;
1164              default: {
1165                if (!parseUnknownField(input, unknownFields,
1166                                       extensionRegistry, tag)) {
1167                  done = true;
1168                }
1169                break;
1170              }
1171              case 10: {
1172                com.google.protobuf.ByteString bs = input.readBytes();
1173                bitField0_ |= 0x00000001;
1174                key_ = bs;
1175                break;
1176              }
1177              case 18: {
1178                com.google.protobuf.ByteString bs = input.readBytes();
1179                bitField0_ |= 0x00000002;
1180                value_ = bs;
1181                break;
1182              }
1183            }
1184          }
1185        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1186          throw new RuntimeException(e.setUnfinishedMessage(this));
1187        } catch (java.io.IOException e) {
1188          throw new RuntimeException(
1189              new com.google.protobuf.InvalidProtocolBufferException(
1190                  e.getMessage()).setUnfinishedMessage(this));
1191        } finally {
1192          this.unknownFields = unknownFields.build();
1193          makeExtensionsImmutable();
1194        }
1195      }
1196      public static final com.google.protobuf.Descriptors.Descriptor
1197          getDescriptor() {
1198        return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_ActiveRuleParam_descriptor;
1199      }
1200
1201      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
1202          internalGetFieldAccessorTable() {
1203        return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_ActiveRuleParam_fieldAccessorTable
1204            .ensureFieldAccessorsInitialized(
1205                org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.class, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder.class);
1206      }
1207
1208      private int bitField0_;
1209      public static final int KEY_FIELD_NUMBER = 1;
1210      private volatile java.lang.Object key_;
1211      /**
1212       * <code>optional string key = 1;</code>
1213       */
1214      public boolean hasKey() {
1215        return ((bitField0_ & 0x00000001) == 0x00000001);
1216      }
1217      /**
1218       * <code>optional string key = 1;</code>
1219       */
1220      public java.lang.String getKey() {
1221        java.lang.Object ref = key_;
1222        if (ref instanceof java.lang.String) {
1223          return (java.lang.String) ref;
1224        } else {
1225          com.google.protobuf.ByteString bs = 
1226              (com.google.protobuf.ByteString) ref;
1227          java.lang.String s = bs.toStringUtf8();
1228          if (bs.isValidUtf8()) {
1229            key_ = s;
1230          }
1231          return s;
1232        }
1233      }
1234      /**
1235       * <code>optional string key = 1;</code>
1236       */
1237      public com.google.protobuf.ByteString
1238          getKeyBytes() {
1239        java.lang.Object ref = key_;
1240        if (ref instanceof java.lang.String) {
1241          com.google.protobuf.ByteString b = 
1242              com.google.protobuf.ByteString.copyFromUtf8(
1243                  (java.lang.String) ref);
1244          key_ = b;
1245          return b;
1246        } else {
1247          return (com.google.protobuf.ByteString) ref;
1248        }
1249      }
1250
1251      public static final int VALUE_FIELD_NUMBER = 2;
1252      private volatile java.lang.Object value_;
1253      /**
1254       * <code>optional string value = 2;</code>
1255       */
1256      public boolean hasValue() {
1257        return ((bitField0_ & 0x00000002) == 0x00000002);
1258      }
1259      /**
1260       * <code>optional string value = 2;</code>
1261       */
1262      public java.lang.String getValue() {
1263        java.lang.Object ref = value_;
1264        if (ref instanceof java.lang.String) {
1265          return (java.lang.String) ref;
1266        } else {
1267          com.google.protobuf.ByteString bs = 
1268              (com.google.protobuf.ByteString) ref;
1269          java.lang.String s = bs.toStringUtf8();
1270          if (bs.isValidUtf8()) {
1271            value_ = s;
1272          }
1273          return s;
1274        }
1275      }
1276      /**
1277       * <code>optional string value = 2;</code>
1278       */
1279      public com.google.protobuf.ByteString
1280          getValueBytes() {
1281        java.lang.Object ref = value_;
1282        if (ref instanceof java.lang.String) {
1283          com.google.protobuf.ByteString b = 
1284              com.google.protobuf.ByteString.copyFromUtf8(
1285                  (java.lang.String) ref);
1286          value_ = b;
1287          return b;
1288        } else {
1289          return (com.google.protobuf.ByteString) ref;
1290        }
1291      }
1292
1293      private byte memoizedIsInitialized = -1;
1294      public final boolean isInitialized() {
1295        byte isInitialized = memoizedIsInitialized;
1296        if (isInitialized == 1) return true;
1297        if (isInitialized == 0) return false;
1298
1299        memoizedIsInitialized = 1;
1300        return true;
1301      }
1302
1303      public void writeTo(com.google.protobuf.CodedOutputStream output)
1304                          throws java.io.IOException {
1305        if (((bitField0_ & 0x00000001) == 0x00000001)) {
1306          com.google.protobuf.GeneratedMessage.writeString(output, 1, key_);
1307        }
1308        if (((bitField0_ & 0x00000002) == 0x00000002)) {
1309          com.google.protobuf.GeneratedMessage.writeString(output, 2, value_);
1310        }
1311        unknownFields.writeTo(output);
1312      }
1313
1314      public int getSerializedSize() {
1315        int size = memoizedSize;
1316        if (size != -1) return size;
1317
1318        size = 0;
1319        if (((bitField0_ & 0x00000001) == 0x00000001)) {
1320          size += com.google.protobuf.GeneratedMessage.computeStringSize(1, key_);
1321        }
1322        if (((bitField0_ & 0x00000002) == 0x00000002)) {
1323          size += com.google.protobuf.GeneratedMessage.computeStringSize(2, value_);
1324        }
1325        size += unknownFields.getSerializedSize();
1326        memoizedSize = size;
1327        return size;
1328      }
1329
1330      private static final long serialVersionUID = 0L;
1331      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(
1332          com.google.protobuf.ByteString data)
1333          throws com.google.protobuf.InvalidProtocolBufferException {
1334        return PARSER.parseFrom(data);
1335      }
1336      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(
1337          com.google.protobuf.ByteString data,
1338          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1339          throws com.google.protobuf.InvalidProtocolBufferException {
1340        return PARSER.parseFrom(data, extensionRegistry);
1341      }
1342      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(byte[] data)
1343          throws com.google.protobuf.InvalidProtocolBufferException {
1344        return PARSER.parseFrom(data);
1345      }
1346      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(
1347          byte[] data,
1348          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1349          throws com.google.protobuf.InvalidProtocolBufferException {
1350        return PARSER.parseFrom(data, extensionRegistry);
1351      }
1352      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(java.io.InputStream input)
1353          throws java.io.IOException {
1354        return PARSER.parseFrom(input);
1355      }
1356      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(
1357          java.io.InputStream input,
1358          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1359          throws java.io.IOException {
1360        return PARSER.parseFrom(input, extensionRegistry);
1361      }
1362      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseDelimitedFrom(java.io.InputStream input)
1363          throws java.io.IOException {
1364        return PARSER.parseDelimitedFrom(input);
1365      }
1366      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseDelimitedFrom(
1367          java.io.InputStream input,
1368          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1369          throws java.io.IOException {
1370        return PARSER.parseDelimitedFrom(input, extensionRegistry);
1371      }
1372      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(
1373          com.google.protobuf.CodedInputStream input)
1374          throws java.io.IOException {
1375        return PARSER.parseFrom(input);
1376      }
1377      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parseFrom(
1378          com.google.protobuf.CodedInputStream input,
1379          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1380          throws java.io.IOException {
1381        return PARSER.parseFrom(input, extensionRegistry);
1382      }
1383
1384      public Builder newBuilderForType() { return newBuilder(); }
1385      public static Builder newBuilder() {
1386        return DEFAULT_INSTANCE.toBuilder();
1387      }
1388      public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam prototype) {
1389        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
1390      }
1391      public Builder toBuilder() {
1392        return this == DEFAULT_INSTANCE
1393            ? new Builder() : new Builder().mergeFrom(this);
1394      }
1395
1396      @java.lang.Override
1397      protected Builder newBuilderForType(
1398          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
1399        Builder builder = new Builder(parent);
1400        return builder;
1401      }
1402      /**
1403       * Protobuf type {@code ActiveRule.ActiveRuleParam}
1404       *
1405       * <pre>
1406       * TODO replace by map
1407       * </pre>
1408       */
1409      public static final class Builder extends
1410          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
1411          // @@protoc_insertion_point(builder_implements:ActiveRule.ActiveRuleParam)
1412          org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder {
1413        public static final com.google.protobuf.Descriptors.Descriptor
1414            getDescriptor() {
1415          return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_ActiveRuleParam_descriptor;
1416        }
1417
1418        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
1419            internalGetFieldAccessorTable() {
1420          return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_ActiveRuleParam_fieldAccessorTable
1421              .ensureFieldAccessorsInitialized(
1422                  org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.class, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder.class);
1423        }
1424
1425        // Construct using org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.newBuilder()
1426        private Builder() {
1427          maybeForceBuilderInitialization();
1428        }
1429
1430        private Builder(
1431            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
1432          super(parent);
1433          maybeForceBuilderInitialization();
1434        }
1435        private void maybeForceBuilderInitialization() {
1436          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
1437          }
1438        }
1439        public Builder clear() {
1440          super.clear();
1441          key_ = "";
1442          bitField0_ = (bitField0_ & ~0x00000001);
1443          value_ = "";
1444          bitField0_ = (bitField0_ & ~0x00000002);
1445          return this;
1446        }
1447
1448        public com.google.protobuf.Descriptors.Descriptor
1449            getDescriptorForType() {
1450          return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_ActiveRuleParam_descriptor;
1451        }
1452
1453        public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam getDefaultInstanceForType() {
1454          return org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.getDefaultInstance();
1455        }
1456
1457        public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam build() {
1458          org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam result = buildPartial();
1459          if (!result.isInitialized()) {
1460            throw newUninitializedMessageException(result);
1461          }
1462          return result;
1463        }
1464
1465        public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam buildPartial() {
1466          org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam result = new org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam(this);
1467          int from_bitField0_ = bitField0_;
1468          int to_bitField0_ = 0;
1469          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
1470            to_bitField0_ |= 0x00000001;
1471          }
1472          result.key_ = key_;
1473          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
1474            to_bitField0_ |= 0x00000002;
1475          }
1476          result.value_ = value_;
1477          result.bitField0_ = to_bitField0_;
1478          onBuilt();
1479          return result;
1480        }
1481
1482        public Builder mergeFrom(com.google.protobuf.Message other) {
1483          if (other instanceof org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam) {
1484            return mergeFrom((org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam)other);
1485          } else {
1486            super.mergeFrom(other);
1487            return this;
1488          }
1489        }
1490
1491        public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam other) {
1492          if (other == org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.getDefaultInstance()) return this;
1493          if (other.hasKey()) {
1494            bitField0_ |= 0x00000001;
1495            key_ = other.key_;
1496            onChanged();
1497          }
1498          if (other.hasValue()) {
1499            bitField0_ |= 0x00000002;
1500            value_ = other.value_;
1501            onChanged();
1502          }
1503          this.mergeUnknownFields(other.unknownFields);
1504          onChanged();
1505          return this;
1506        }
1507
1508        public final boolean isInitialized() {
1509          return true;
1510        }
1511
1512        public Builder mergeFrom(
1513            com.google.protobuf.CodedInputStream input,
1514            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1515            throws java.io.IOException {
1516          org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam parsedMessage = null;
1517          try {
1518            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
1519          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
1520            parsedMessage = (org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam) e.getUnfinishedMessage();
1521            throw e;
1522          } finally {
1523            if (parsedMessage != null) {
1524              mergeFrom(parsedMessage);
1525            }
1526          }
1527          return this;
1528        }
1529        private int bitField0_;
1530
1531        private java.lang.Object key_ = "";
1532        /**
1533         * <code>optional string key = 1;</code>
1534         */
1535        public boolean hasKey() {
1536          return ((bitField0_ & 0x00000001) == 0x00000001);
1537        }
1538        /**
1539         * <code>optional string key = 1;</code>
1540         */
1541        public java.lang.String getKey() {
1542          java.lang.Object ref = key_;
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              key_ = s;
1549            }
1550            return s;
1551          } else {
1552            return (java.lang.String) ref;
1553          }
1554        }
1555        /**
1556         * <code>optional string key = 1;</code>
1557         */
1558        public com.google.protobuf.ByteString
1559            getKeyBytes() {
1560          java.lang.Object ref = key_;
1561          if (ref instanceof String) {
1562            com.google.protobuf.ByteString b = 
1563                com.google.protobuf.ByteString.copyFromUtf8(
1564                    (java.lang.String) ref);
1565            key_ = b;
1566            return b;
1567          } else {
1568            return (com.google.protobuf.ByteString) ref;
1569          }
1570        }
1571        /**
1572         * <code>optional string key = 1;</code>
1573         */
1574        public Builder setKey(
1575            java.lang.String value) {
1576          if (value == null) {
1577    throw new NullPointerException();
1578  }
1579  bitField0_ |= 0x00000001;
1580          key_ = value;
1581          onChanged();
1582          return this;
1583        }
1584        /**
1585         * <code>optional string key = 1;</code>
1586         */
1587        public Builder clearKey() {
1588          bitField0_ = (bitField0_ & ~0x00000001);
1589          key_ = getDefaultInstance().getKey();
1590          onChanged();
1591          return this;
1592        }
1593        /**
1594         * <code>optional string key = 1;</code>
1595         */
1596        public Builder setKeyBytes(
1597            com.google.protobuf.ByteString value) {
1598          if (value == null) {
1599    throw new NullPointerException();
1600  }
1601  bitField0_ |= 0x00000001;
1602          key_ = value;
1603          onChanged();
1604          return this;
1605        }
1606
1607        private java.lang.Object value_ = "";
1608        /**
1609         * <code>optional string value = 2;</code>
1610         */
1611        public boolean hasValue() {
1612          return ((bitField0_ & 0x00000002) == 0x00000002);
1613        }
1614        /**
1615         * <code>optional string value = 2;</code>
1616         */
1617        public java.lang.String getValue() {
1618          java.lang.Object ref = value_;
1619          if (!(ref instanceof java.lang.String)) {
1620            com.google.protobuf.ByteString bs =
1621                (com.google.protobuf.ByteString) ref;
1622            java.lang.String s = bs.toStringUtf8();
1623            if (bs.isValidUtf8()) {
1624              value_ = s;
1625            }
1626            return s;
1627          } else {
1628            return (java.lang.String) ref;
1629          }
1630        }
1631        /**
1632         * <code>optional string value = 2;</code>
1633         */
1634        public com.google.protobuf.ByteString
1635            getValueBytes() {
1636          java.lang.Object ref = value_;
1637          if (ref instanceof String) {
1638            com.google.protobuf.ByteString b = 
1639                com.google.protobuf.ByteString.copyFromUtf8(
1640                    (java.lang.String) ref);
1641            value_ = b;
1642            return b;
1643          } else {
1644            return (com.google.protobuf.ByteString) ref;
1645          }
1646        }
1647        /**
1648         * <code>optional string value = 2;</code>
1649         */
1650        public Builder setValue(
1651            java.lang.String value) {
1652          if (value == null) {
1653    throw new NullPointerException();
1654  }
1655  bitField0_ |= 0x00000002;
1656          value_ = value;
1657          onChanged();
1658          return this;
1659        }
1660        /**
1661         * <code>optional string value = 2;</code>
1662         */
1663        public Builder clearValue() {
1664          bitField0_ = (bitField0_ & ~0x00000002);
1665          value_ = getDefaultInstance().getValue();
1666          onChanged();
1667          return this;
1668        }
1669        /**
1670         * <code>optional string value = 2;</code>
1671         */
1672        public Builder setValueBytes(
1673            com.google.protobuf.ByteString value) {
1674          if (value == null) {
1675    throw new NullPointerException();
1676  }
1677  bitField0_ |= 0x00000002;
1678          value_ = value;
1679          onChanged();
1680          return this;
1681        }
1682
1683        // @@protoc_insertion_point(builder_scope:ActiveRule.ActiveRuleParam)
1684      }
1685
1686      // @@protoc_insertion_point(class_scope:ActiveRule.ActiveRuleParam)
1687      private static final org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam DEFAULT_INSTANCE;
1688      static {
1689        DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam();
1690      }
1691
1692      public static org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam getDefaultInstance() {
1693        return DEFAULT_INSTANCE;
1694      }
1695
1696      @java.lang.Deprecated public static final com.google.protobuf.Parser<ActiveRuleParam>
1697          PARSER = new com.google.protobuf.AbstractParser<ActiveRuleParam>() {
1698        public ActiveRuleParam parsePartialFrom(
1699            com.google.protobuf.CodedInputStream input,
1700            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1701            throws com.google.protobuf.InvalidProtocolBufferException {
1702          try {
1703            return new ActiveRuleParam(input, extensionRegistry);
1704          } catch (RuntimeException e) {
1705            if (e.getCause() instanceof
1706                com.google.protobuf.InvalidProtocolBufferException) {
1707              throw (com.google.protobuf.InvalidProtocolBufferException)
1708                  e.getCause();
1709            }
1710            throw e;
1711          }
1712        }
1713      };
1714
1715      public static com.google.protobuf.Parser<ActiveRuleParam> parser() {
1716        return PARSER;
1717      }
1718
1719      @java.lang.Override
1720      public com.google.protobuf.Parser<ActiveRuleParam> getParserForType() {
1721        return PARSER;
1722      }
1723
1724      public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam getDefaultInstanceForType() {
1725        return DEFAULT_INSTANCE;
1726      }
1727
1728    }
1729
1730    private int bitField0_;
1731    public static final int RULE_REPOSITORY_FIELD_NUMBER = 1;
1732    private volatile java.lang.Object ruleRepository_;
1733    /**
1734     * <code>optional string rule_repository = 1;</code>
1735     */
1736    public boolean hasRuleRepository() {
1737      return ((bitField0_ & 0x00000001) == 0x00000001);
1738    }
1739    /**
1740     * <code>optional string rule_repository = 1;</code>
1741     */
1742    public java.lang.String getRuleRepository() {
1743      java.lang.Object ref = ruleRepository_;
1744      if (ref instanceof java.lang.String) {
1745        return (java.lang.String) ref;
1746      } else {
1747        com.google.protobuf.ByteString bs = 
1748            (com.google.protobuf.ByteString) ref;
1749        java.lang.String s = bs.toStringUtf8();
1750        if (bs.isValidUtf8()) {
1751          ruleRepository_ = s;
1752        }
1753        return s;
1754      }
1755    }
1756    /**
1757     * <code>optional string rule_repository = 1;</code>
1758     */
1759    public com.google.protobuf.ByteString
1760        getRuleRepositoryBytes() {
1761      java.lang.Object ref = ruleRepository_;
1762      if (ref instanceof java.lang.String) {
1763        com.google.protobuf.ByteString b = 
1764            com.google.protobuf.ByteString.copyFromUtf8(
1765                (java.lang.String) ref);
1766        ruleRepository_ = b;
1767        return b;
1768      } else {
1769        return (com.google.protobuf.ByteString) ref;
1770      }
1771    }
1772
1773    public static final int RULE_KEY_FIELD_NUMBER = 2;
1774    private volatile java.lang.Object ruleKey_;
1775    /**
1776     * <code>optional string rule_key = 2;</code>
1777     */
1778    public boolean hasRuleKey() {
1779      return ((bitField0_ & 0x00000002) == 0x00000002);
1780    }
1781    /**
1782     * <code>optional string rule_key = 2;</code>
1783     */
1784    public java.lang.String getRuleKey() {
1785      java.lang.Object ref = ruleKey_;
1786      if (ref instanceof java.lang.String) {
1787        return (java.lang.String) ref;
1788      } else {
1789        com.google.protobuf.ByteString bs = 
1790            (com.google.protobuf.ByteString) ref;
1791        java.lang.String s = bs.toStringUtf8();
1792        if (bs.isValidUtf8()) {
1793          ruleKey_ = s;
1794        }
1795        return s;
1796      }
1797    }
1798    /**
1799     * <code>optional string rule_key = 2;</code>
1800     */
1801    public com.google.protobuf.ByteString
1802        getRuleKeyBytes() {
1803      java.lang.Object ref = ruleKey_;
1804      if (ref instanceof java.lang.String) {
1805        com.google.protobuf.ByteString b = 
1806            com.google.protobuf.ByteString.copyFromUtf8(
1807                (java.lang.String) ref);
1808        ruleKey_ = b;
1809        return b;
1810      } else {
1811        return (com.google.protobuf.ByteString) ref;
1812      }
1813    }
1814
1815    public static final int SEVERITY_FIELD_NUMBER = 3;
1816    private int severity_;
1817    /**
1818     * <code>optional .Severity severity = 3;</code>
1819     */
1820    public boolean hasSeverity() {
1821      return ((bitField0_ & 0x00000004) == 0x00000004);
1822    }
1823    /**
1824     * <code>optional .Severity severity = 3;</code>
1825     */
1826    public org.sonar.batch.protocol.Constants.Severity getSeverity() {
1827      org.sonar.batch.protocol.Constants.Severity result = org.sonar.batch.protocol.Constants.Severity.valueOf(severity_);
1828      return result == null ? org.sonar.batch.protocol.Constants.Severity.INFO : result;
1829    }
1830
1831    public static final int PARAM_FIELD_NUMBER = 4;
1832    private java.util.List<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam> param_;
1833    /**
1834     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
1835     */
1836    public java.util.List<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam> getParamList() {
1837      return param_;
1838    }
1839    /**
1840     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
1841     */
1842    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder> 
1843        getParamOrBuilderList() {
1844      return param_;
1845    }
1846    /**
1847     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
1848     */
1849    public int getParamCount() {
1850      return param_.size();
1851    }
1852    /**
1853     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
1854     */
1855    public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam getParam(int index) {
1856      return param_.get(index);
1857    }
1858    /**
1859     * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
1860     */
1861    public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder getParamOrBuilder(
1862        int index) {
1863      return param_.get(index);
1864    }
1865
1866    private byte memoizedIsInitialized = -1;
1867    public final boolean isInitialized() {
1868      byte isInitialized = memoizedIsInitialized;
1869      if (isInitialized == 1) return true;
1870      if (isInitialized == 0) return false;
1871
1872      memoizedIsInitialized = 1;
1873      return true;
1874    }
1875
1876    public void writeTo(com.google.protobuf.CodedOutputStream output)
1877                        throws java.io.IOException {
1878      if (((bitField0_ & 0x00000001) == 0x00000001)) {
1879        com.google.protobuf.GeneratedMessage.writeString(output, 1, ruleRepository_);
1880      }
1881      if (((bitField0_ & 0x00000002) == 0x00000002)) {
1882        com.google.protobuf.GeneratedMessage.writeString(output, 2, ruleKey_);
1883      }
1884      if (((bitField0_ & 0x00000004) == 0x00000004)) {
1885        output.writeEnum(3, severity_);
1886      }
1887      for (int i = 0; i < param_.size(); i++) {
1888        output.writeMessage(4, param_.get(i));
1889      }
1890      unknownFields.writeTo(output);
1891    }
1892
1893    public int getSerializedSize() {
1894      int size = memoizedSize;
1895      if (size != -1) return size;
1896
1897      size = 0;
1898      if (((bitField0_ & 0x00000001) == 0x00000001)) {
1899        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, ruleRepository_);
1900      }
1901      if (((bitField0_ & 0x00000002) == 0x00000002)) {
1902        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, ruleKey_);
1903      }
1904      if (((bitField0_ & 0x00000004) == 0x00000004)) {
1905        size += com.google.protobuf.CodedOutputStream
1906          .computeEnumSize(3, severity_);
1907      }
1908      for (int i = 0; i < param_.size(); i++) {
1909        size += com.google.protobuf.CodedOutputStream
1910          .computeMessageSize(4, param_.get(i));
1911      }
1912      size += unknownFields.getSerializedSize();
1913      memoizedSize = size;
1914      return size;
1915    }
1916
1917    private static final long serialVersionUID = 0L;
1918    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(
1919        com.google.protobuf.ByteString data)
1920        throws com.google.protobuf.InvalidProtocolBufferException {
1921      return PARSER.parseFrom(data);
1922    }
1923    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(
1924        com.google.protobuf.ByteString data,
1925        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1926        throws com.google.protobuf.InvalidProtocolBufferException {
1927      return PARSER.parseFrom(data, extensionRegistry);
1928    }
1929    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(byte[] data)
1930        throws com.google.protobuf.InvalidProtocolBufferException {
1931      return PARSER.parseFrom(data);
1932    }
1933    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(
1934        byte[] data,
1935        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1936        throws com.google.protobuf.InvalidProtocolBufferException {
1937      return PARSER.parseFrom(data, extensionRegistry);
1938    }
1939    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(java.io.InputStream input)
1940        throws java.io.IOException {
1941      return PARSER.parseFrom(input);
1942    }
1943    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(
1944        java.io.InputStream input,
1945        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1946        throws java.io.IOException {
1947      return PARSER.parseFrom(input, extensionRegistry);
1948    }
1949    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseDelimitedFrom(java.io.InputStream input)
1950        throws java.io.IOException {
1951      return PARSER.parseDelimitedFrom(input);
1952    }
1953    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseDelimitedFrom(
1954        java.io.InputStream input,
1955        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1956        throws java.io.IOException {
1957      return PARSER.parseDelimitedFrom(input, extensionRegistry);
1958    }
1959    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(
1960        com.google.protobuf.CodedInputStream input)
1961        throws java.io.IOException {
1962      return PARSER.parseFrom(input);
1963    }
1964    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule parseFrom(
1965        com.google.protobuf.CodedInputStream input,
1966        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
1967        throws java.io.IOException {
1968      return PARSER.parseFrom(input, extensionRegistry);
1969    }
1970
1971    public Builder newBuilderForType() { return newBuilder(); }
1972    public static Builder newBuilder() {
1973      return DEFAULT_INSTANCE.toBuilder();
1974    }
1975    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.ActiveRule prototype) {
1976      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
1977    }
1978    public Builder toBuilder() {
1979      return this == DEFAULT_INSTANCE
1980          ? new Builder() : new Builder().mergeFrom(this);
1981    }
1982
1983    @java.lang.Override
1984    protected Builder newBuilderForType(
1985        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
1986      Builder builder = new Builder(parent);
1987      return builder;
1988    }
1989    /**
1990     * Protobuf type {@code ActiveRule}
1991     */
1992    public static final class Builder extends
1993        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
1994        // @@protoc_insertion_point(builder_implements:ActiveRule)
1995        org.sonar.batch.protocol.output.BatchReport.ActiveRuleOrBuilder {
1996      public static final com.google.protobuf.Descriptors.Descriptor
1997          getDescriptor() {
1998        return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_descriptor;
1999      }
2000
2001      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
2002          internalGetFieldAccessorTable() {
2003        return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_fieldAccessorTable
2004            .ensureFieldAccessorsInitialized(
2005                org.sonar.batch.protocol.output.BatchReport.ActiveRule.class, org.sonar.batch.protocol.output.BatchReport.ActiveRule.Builder.class);
2006      }
2007
2008      // Construct using org.sonar.batch.protocol.output.BatchReport.ActiveRule.newBuilder()
2009      private Builder() {
2010        maybeForceBuilderInitialization();
2011      }
2012
2013      private Builder(
2014          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
2015        super(parent);
2016        maybeForceBuilderInitialization();
2017      }
2018      private void maybeForceBuilderInitialization() {
2019        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
2020          getParamFieldBuilder();
2021        }
2022      }
2023      public Builder clear() {
2024        super.clear();
2025        ruleRepository_ = "";
2026        bitField0_ = (bitField0_ & ~0x00000001);
2027        ruleKey_ = "";
2028        bitField0_ = (bitField0_ & ~0x00000002);
2029        severity_ = 0;
2030        bitField0_ = (bitField0_ & ~0x00000004);
2031        if (paramBuilder_ == null) {
2032          param_ = java.util.Collections.emptyList();
2033          bitField0_ = (bitField0_ & ~0x00000008);
2034        } else {
2035          paramBuilder_.clear();
2036        }
2037        return this;
2038      }
2039
2040      public com.google.protobuf.Descriptors.Descriptor
2041          getDescriptorForType() {
2042        return org.sonar.batch.protocol.output.BatchReport.internal_static_ActiveRule_descriptor;
2043      }
2044
2045      public org.sonar.batch.protocol.output.BatchReport.ActiveRule getDefaultInstanceForType() {
2046        return org.sonar.batch.protocol.output.BatchReport.ActiveRule.getDefaultInstance();
2047      }
2048
2049      public org.sonar.batch.protocol.output.BatchReport.ActiveRule build() {
2050        org.sonar.batch.protocol.output.BatchReport.ActiveRule result = buildPartial();
2051        if (!result.isInitialized()) {
2052          throw newUninitializedMessageException(result);
2053        }
2054        return result;
2055      }
2056
2057      public org.sonar.batch.protocol.output.BatchReport.ActiveRule buildPartial() {
2058        org.sonar.batch.protocol.output.BatchReport.ActiveRule result = new org.sonar.batch.protocol.output.BatchReport.ActiveRule(this);
2059        int from_bitField0_ = bitField0_;
2060        int to_bitField0_ = 0;
2061        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
2062          to_bitField0_ |= 0x00000001;
2063        }
2064        result.ruleRepository_ = ruleRepository_;
2065        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
2066          to_bitField0_ |= 0x00000002;
2067        }
2068        result.ruleKey_ = ruleKey_;
2069        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
2070          to_bitField0_ |= 0x00000004;
2071        }
2072        result.severity_ = severity_;
2073        if (paramBuilder_ == null) {
2074          if (((bitField0_ & 0x00000008) == 0x00000008)) {
2075            param_ = java.util.Collections.unmodifiableList(param_);
2076            bitField0_ = (bitField0_ & ~0x00000008);
2077          }
2078          result.param_ = param_;
2079        } else {
2080          result.param_ = paramBuilder_.build();
2081        }
2082        result.bitField0_ = to_bitField0_;
2083        onBuilt();
2084        return result;
2085      }
2086
2087      public Builder mergeFrom(com.google.protobuf.Message other) {
2088        if (other instanceof org.sonar.batch.protocol.output.BatchReport.ActiveRule) {
2089          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.ActiveRule)other);
2090        } else {
2091          super.mergeFrom(other);
2092          return this;
2093        }
2094      }
2095
2096      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.ActiveRule other) {
2097        if (other == org.sonar.batch.protocol.output.BatchReport.ActiveRule.getDefaultInstance()) return this;
2098        if (other.hasRuleRepository()) {
2099          bitField0_ |= 0x00000001;
2100          ruleRepository_ = other.ruleRepository_;
2101          onChanged();
2102        }
2103        if (other.hasRuleKey()) {
2104          bitField0_ |= 0x00000002;
2105          ruleKey_ = other.ruleKey_;
2106          onChanged();
2107        }
2108        if (other.hasSeverity()) {
2109          setSeverity(other.getSeverity());
2110        }
2111        if (paramBuilder_ == null) {
2112          if (!other.param_.isEmpty()) {
2113            if (param_.isEmpty()) {
2114              param_ = other.param_;
2115              bitField0_ = (bitField0_ & ~0x00000008);
2116            } else {
2117              ensureParamIsMutable();
2118              param_.addAll(other.param_);
2119            }
2120            onChanged();
2121          }
2122        } else {
2123          if (!other.param_.isEmpty()) {
2124            if (paramBuilder_.isEmpty()) {
2125              paramBuilder_.dispose();
2126              paramBuilder_ = null;
2127              param_ = other.param_;
2128              bitField0_ = (bitField0_ & ~0x00000008);
2129              paramBuilder_ = 
2130                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
2131                   getParamFieldBuilder() : null;
2132            } else {
2133              paramBuilder_.addAllMessages(other.param_);
2134            }
2135          }
2136        }
2137        this.mergeUnknownFields(other.unknownFields);
2138        onChanged();
2139        return this;
2140      }
2141
2142      public final boolean isInitialized() {
2143        return true;
2144      }
2145
2146      public Builder mergeFrom(
2147          com.google.protobuf.CodedInputStream input,
2148          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2149          throws java.io.IOException {
2150        org.sonar.batch.protocol.output.BatchReport.ActiveRule parsedMessage = null;
2151        try {
2152          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
2153        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2154          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.ActiveRule) e.getUnfinishedMessage();
2155          throw e;
2156        } finally {
2157          if (parsedMessage != null) {
2158            mergeFrom(parsedMessage);
2159          }
2160        }
2161        return this;
2162      }
2163      private int bitField0_;
2164
2165      private java.lang.Object ruleRepository_ = "";
2166      /**
2167       * <code>optional string rule_repository = 1;</code>
2168       */
2169      public boolean hasRuleRepository() {
2170        return ((bitField0_ & 0x00000001) == 0x00000001);
2171      }
2172      /**
2173       * <code>optional string rule_repository = 1;</code>
2174       */
2175      public java.lang.String getRuleRepository() {
2176        java.lang.Object ref = ruleRepository_;
2177        if (!(ref instanceof java.lang.String)) {
2178          com.google.protobuf.ByteString bs =
2179              (com.google.protobuf.ByteString) ref;
2180          java.lang.String s = bs.toStringUtf8();
2181          if (bs.isValidUtf8()) {
2182            ruleRepository_ = s;
2183          }
2184          return s;
2185        } else {
2186          return (java.lang.String) ref;
2187        }
2188      }
2189      /**
2190       * <code>optional string rule_repository = 1;</code>
2191       */
2192      public com.google.protobuf.ByteString
2193          getRuleRepositoryBytes() {
2194        java.lang.Object ref = ruleRepository_;
2195        if (ref instanceof String) {
2196          com.google.protobuf.ByteString b = 
2197              com.google.protobuf.ByteString.copyFromUtf8(
2198                  (java.lang.String) ref);
2199          ruleRepository_ = b;
2200          return b;
2201        } else {
2202          return (com.google.protobuf.ByteString) ref;
2203        }
2204      }
2205      /**
2206       * <code>optional string rule_repository = 1;</code>
2207       */
2208      public Builder setRuleRepository(
2209          java.lang.String value) {
2210        if (value == null) {
2211    throw new NullPointerException();
2212  }
2213  bitField0_ |= 0x00000001;
2214        ruleRepository_ = value;
2215        onChanged();
2216        return this;
2217      }
2218      /**
2219       * <code>optional string rule_repository = 1;</code>
2220       */
2221      public Builder clearRuleRepository() {
2222        bitField0_ = (bitField0_ & ~0x00000001);
2223        ruleRepository_ = getDefaultInstance().getRuleRepository();
2224        onChanged();
2225        return this;
2226      }
2227      /**
2228       * <code>optional string rule_repository = 1;</code>
2229       */
2230      public Builder setRuleRepositoryBytes(
2231          com.google.protobuf.ByteString value) {
2232        if (value == null) {
2233    throw new NullPointerException();
2234  }
2235  bitField0_ |= 0x00000001;
2236        ruleRepository_ = value;
2237        onChanged();
2238        return this;
2239      }
2240
2241      private java.lang.Object ruleKey_ = "";
2242      /**
2243       * <code>optional string rule_key = 2;</code>
2244       */
2245      public boolean hasRuleKey() {
2246        return ((bitField0_ & 0x00000002) == 0x00000002);
2247      }
2248      /**
2249       * <code>optional string rule_key = 2;</code>
2250       */
2251      public java.lang.String getRuleKey() {
2252        java.lang.Object ref = ruleKey_;
2253        if (!(ref instanceof java.lang.String)) {
2254          com.google.protobuf.ByteString bs =
2255              (com.google.protobuf.ByteString) ref;
2256          java.lang.String s = bs.toStringUtf8();
2257          if (bs.isValidUtf8()) {
2258            ruleKey_ = s;
2259          }
2260          return s;
2261        } else {
2262          return (java.lang.String) ref;
2263        }
2264      }
2265      /**
2266       * <code>optional string rule_key = 2;</code>
2267       */
2268      public com.google.protobuf.ByteString
2269          getRuleKeyBytes() {
2270        java.lang.Object ref = ruleKey_;
2271        if (ref instanceof String) {
2272          com.google.protobuf.ByteString b = 
2273              com.google.protobuf.ByteString.copyFromUtf8(
2274                  (java.lang.String) ref);
2275          ruleKey_ = b;
2276          return b;
2277        } else {
2278          return (com.google.protobuf.ByteString) ref;
2279        }
2280      }
2281      /**
2282       * <code>optional string rule_key = 2;</code>
2283       */
2284      public Builder setRuleKey(
2285          java.lang.String value) {
2286        if (value == null) {
2287    throw new NullPointerException();
2288  }
2289  bitField0_ |= 0x00000002;
2290        ruleKey_ = value;
2291        onChanged();
2292        return this;
2293      }
2294      /**
2295       * <code>optional string rule_key = 2;</code>
2296       */
2297      public Builder clearRuleKey() {
2298        bitField0_ = (bitField0_ & ~0x00000002);
2299        ruleKey_ = getDefaultInstance().getRuleKey();
2300        onChanged();
2301        return this;
2302      }
2303      /**
2304       * <code>optional string rule_key = 2;</code>
2305       */
2306      public Builder setRuleKeyBytes(
2307          com.google.protobuf.ByteString value) {
2308        if (value == null) {
2309    throw new NullPointerException();
2310  }
2311  bitField0_ |= 0x00000002;
2312        ruleKey_ = value;
2313        onChanged();
2314        return this;
2315      }
2316
2317      private int severity_ = 0;
2318      /**
2319       * <code>optional .Severity severity = 3;</code>
2320       */
2321      public boolean hasSeverity() {
2322        return ((bitField0_ & 0x00000004) == 0x00000004);
2323      }
2324      /**
2325       * <code>optional .Severity severity = 3;</code>
2326       */
2327      public org.sonar.batch.protocol.Constants.Severity getSeverity() {
2328        org.sonar.batch.protocol.Constants.Severity result = org.sonar.batch.protocol.Constants.Severity.valueOf(severity_);
2329        return result == null ? org.sonar.batch.protocol.Constants.Severity.INFO : result;
2330      }
2331      /**
2332       * <code>optional .Severity severity = 3;</code>
2333       */
2334      public Builder setSeverity(org.sonar.batch.protocol.Constants.Severity value) {
2335        if (value == null) {
2336          throw new NullPointerException();
2337        }
2338        bitField0_ |= 0x00000004;
2339        severity_ = value.getNumber();
2340        onChanged();
2341        return this;
2342      }
2343      /**
2344       * <code>optional .Severity severity = 3;</code>
2345       */
2346      public Builder clearSeverity() {
2347        bitField0_ = (bitField0_ & ~0x00000004);
2348        severity_ = 0;
2349        onChanged();
2350        return this;
2351      }
2352
2353      private java.util.List<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam> param_ =
2354        java.util.Collections.emptyList();
2355      private void ensureParamIsMutable() {
2356        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
2357          param_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam>(param_);
2358          bitField0_ |= 0x00000008;
2359         }
2360      }
2361
2362      private com.google.protobuf.RepeatedFieldBuilder<
2363          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_;
2364
2365      /**
2366       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2367       */
2368      public java.util.List<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam> getParamList() {
2369        if (paramBuilder_ == null) {
2370          return java.util.Collections.unmodifiableList(param_);
2371        } else {
2372          return paramBuilder_.getMessageList();
2373        }
2374      }
2375      /**
2376       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2377       */
2378      public int getParamCount() {
2379        if (paramBuilder_ == null) {
2380          return param_.size();
2381        } else {
2382          return paramBuilder_.getCount();
2383        }
2384      }
2385      /**
2386       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2387       */
2388      public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam getParam(int index) {
2389        if (paramBuilder_ == null) {
2390          return param_.get(index);
2391        } else {
2392          return paramBuilder_.getMessage(index);
2393        }
2394      }
2395      /**
2396       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2397       */
2398      public Builder setParam(
2399          int index, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam value) {
2400        if (paramBuilder_ == null) {
2401          if (value == null) {
2402            throw new NullPointerException();
2403          }
2404          ensureParamIsMutable();
2405          param_.set(index, value);
2406          onChanged();
2407        } else {
2408          paramBuilder_.setMessage(index, value);
2409        }
2410        return this;
2411      }
2412      /**
2413       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2414       */
2415      public Builder setParam(
2416          int index, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder builderForValue) {
2417        if (paramBuilder_ == null) {
2418          ensureParamIsMutable();
2419          param_.set(index, builderForValue.build());
2420          onChanged();
2421        } else {
2422          paramBuilder_.setMessage(index, builderForValue.build());
2423        }
2424        return this;
2425      }
2426      /**
2427       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2428       */
2429      public Builder addParam(org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam value) {
2430        if (paramBuilder_ == null) {
2431          if (value == null) {
2432            throw new NullPointerException();
2433          }
2434          ensureParamIsMutable();
2435          param_.add(value);
2436          onChanged();
2437        } else {
2438          paramBuilder_.addMessage(value);
2439        }
2440        return this;
2441      }
2442      /**
2443       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2444       */
2445      public Builder addParam(
2446          int index, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam value) {
2447        if (paramBuilder_ == null) {
2448          if (value == null) {
2449            throw new NullPointerException();
2450          }
2451          ensureParamIsMutable();
2452          param_.add(index, value);
2453          onChanged();
2454        } else {
2455          paramBuilder_.addMessage(index, value);
2456        }
2457        return this;
2458      }
2459      /**
2460       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2461       */
2462      public Builder addParam(
2463          org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder builderForValue) {
2464        if (paramBuilder_ == null) {
2465          ensureParamIsMutable();
2466          param_.add(builderForValue.build());
2467          onChanged();
2468        } else {
2469          paramBuilder_.addMessage(builderForValue.build());
2470        }
2471        return this;
2472      }
2473      /**
2474       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2475       */
2476      public Builder addParam(
2477          int index, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder builderForValue) {
2478        if (paramBuilder_ == null) {
2479          ensureParamIsMutable();
2480          param_.add(index, builderForValue.build());
2481          onChanged();
2482        } else {
2483          paramBuilder_.addMessage(index, builderForValue.build());
2484        }
2485        return this;
2486      }
2487      /**
2488       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2489       */
2490      public Builder addAllParam(
2491          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam> values) {
2492        if (paramBuilder_ == null) {
2493          ensureParamIsMutable();
2494          com.google.protobuf.AbstractMessageLite.Builder.addAll(
2495              values, param_);
2496          onChanged();
2497        } else {
2498          paramBuilder_.addAllMessages(values);
2499        }
2500        return this;
2501      }
2502      /**
2503       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2504       */
2505      public Builder clearParam() {
2506        if (paramBuilder_ == null) {
2507          param_ = java.util.Collections.emptyList();
2508          bitField0_ = (bitField0_ & ~0x00000008);
2509          onChanged();
2510        } else {
2511          paramBuilder_.clear();
2512        }
2513        return this;
2514      }
2515      /**
2516       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2517       */
2518      public Builder removeParam(int index) {
2519        if (paramBuilder_ == null) {
2520          ensureParamIsMutable();
2521          param_.remove(index);
2522          onChanged();
2523        } else {
2524          paramBuilder_.remove(index);
2525        }
2526        return this;
2527      }
2528      /**
2529       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2530       */
2531      public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder getParamBuilder(
2532          int index) {
2533        return getParamFieldBuilder().getBuilder(index);
2534      }
2535      /**
2536       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2537       */
2538      public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder getParamOrBuilder(
2539          int index) {
2540        if (paramBuilder_ == null) {
2541          return param_.get(index);  } else {
2542          return paramBuilder_.getMessageOrBuilder(index);
2543        }
2544      }
2545      /**
2546       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2547       */
2548      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParamOrBuilder> 
2549           getParamOrBuilderList() {
2550        if (paramBuilder_ != null) {
2551          return paramBuilder_.getMessageOrBuilderList();
2552        } else {
2553          return java.util.Collections.unmodifiableList(param_);
2554        }
2555      }
2556      /**
2557       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2558       */
2559      public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder addParamBuilder() {
2560        return getParamFieldBuilder().addBuilder(
2561            org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.getDefaultInstance());
2562      }
2563      /**
2564       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2565       */
2566      public org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder addParamBuilder(
2567          int index) {
2568        return getParamFieldBuilder().addBuilder(
2569            index, org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.getDefaultInstance());
2570      }
2571      /**
2572       * <code>repeated .ActiveRule.ActiveRuleParam param = 4;</code>
2573       */
2574      public java.util.List<org.sonar.batch.protocol.output.BatchReport.ActiveRule.ActiveRuleParam.Builder> 
2575           getParamBuilderList() {
2576        return getParamFieldBuilder().getBuilderList();
2577      }
2578      private com.google.protobuf.RepeatedFieldBuilder<
2579          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> 
2580          getParamFieldBuilder() {
2581        if (paramBuilder_ == null) {
2582          paramBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
2583              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>(
2584                  param_,
2585                  ((bitField0_ & 0x00000008) == 0x00000008),
2586                  getParentForChildren(),
2587                  isClean());
2588          param_ = null;
2589        }
2590        return paramBuilder_;
2591      }
2592
2593      // @@protoc_insertion_point(builder_scope:ActiveRule)
2594    }
2595
2596    // @@protoc_insertion_point(class_scope:ActiveRule)
2597    private static final org.sonar.batch.protocol.output.BatchReport.ActiveRule DEFAULT_INSTANCE;
2598    static {
2599      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.ActiveRule();
2600    }
2601
2602    public static org.sonar.batch.protocol.output.BatchReport.ActiveRule getDefaultInstance() {
2603      return DEFAULT_INSTANCE;
2604    }
2605
2606    @java.lang.Deprecated public static final com.google.protobuf.Parser<ActiveRule>
2607        PARSER = new com.google.protobuf.AbstractParser<ActiveRule>() {
2608      public ActiveRule parsePartialFrom(
2609          com.google.protobuf.CodedInputStream input,
2610          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2611          throws com.google.protobuf.InvalidProtocolBufferException {
2612        try {
2613          return new ActiveRule(input, extensionRegistry);
2614        } catch (RuntimeException e) {
2615          if (e.getCause() instanceof
2616              com.google.protobuf.InvalidProtocolBufferException) {
2617            throw (com.google.protobuf.InvalidProtocolBufferException)
2618                e.getCause();
2619          }
2620          throw e;
2621        }
2622      }
2623    };
2624
2625    public static com.google.protobuf.Parser<ActiveRule> parser() {
2626      return PARSER;
2627    }
2628
2629    @java.lang.Override
2630    public com.google.protobuf.Parser<ActiveRule> getParserForType() {
2631      return PARSER;
2632    }
2633
2634    public org.sonar.batch.protocol.output.BatchReport.ActiveRule getDefaultInstanceForType() {
2635      return DEFAULT_INSTANCE;
2636    }
2637
2638  }
2639
2640  public interface ComponentLinkOrBuilder extends
2641      // @@protoc_insertion_point(interface_extends:ComponentLink)
2642      com.google.protobuf.MessageOrBuilder {
2643
2644    /**
2645     * <code>optional .ComponentLinkType type = 1;</code>
2646     */
2647    boolean hasType();
2648    /**
2649     * <code>optional .ComponentLinkType type = 1;</code>
2650     */
2651    org.sonar.batch.protocol.Constants.ComponentLinkType getType();
2652
2653    /**
2654     * <code>optional string href = 2;</code>
2655     */
2656    boolean hasHref();
2657    /**
2658     * <code>optional string href = 2;</code>
2659     */
2660    java.lang.String getHref();
2661    /**
2662     * <code>optional string href = 2;</code>
2663     */
2664    com.google.protobuf.ByteString
2665        getHrefBytes();
2666  }
2667  /**
2668   * Protobuf type {@code ComponentLink}
2669   */
2670  public  static final class ComponentLink extends
2671      com.google.protobuf.GeneratedMessage implements
2672      // @@protoc_insertion_point(message_implements:ComponentLink)
2673      ComponentLinkOrBuilder {
2674    // Use ComponentLink.newBuilder() to construct.
2675    private ComponentLink(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
2676      super(builder);
2677    }
2678    private ComponentLink() {
2679      type_ = 0;
2680      href_ = "";
2681    }
2682
2683    @java.lang.Override
2684    public final com.google.protobuf.UnknownFieldSet
2685    getUnknownFields() {
2686      return this.unknownFields;
2687    }
2688    private ComponentLink(
2689        com.google.protobuf.CodedInputStream input,
2690        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
2691      this();
2692      int mutable_bitField0_ = 0;
2693      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
2694          com.google.protobuf.UnknownFieldSet.newBuilder();
2695      try {
2696        boolean done = false;
2697        while (!done) {
2698          int tag = input.readTag();
2699          switch (tag) {
2700            case 0:
2701              done = true;
2702              break;
2703            default: {
2704              if (!parseUnknownField(input, unknownFields,
2705                                     extensionRegistry, tag)) {
2706                done = true;
2707              }
2708              break;
2709            }
2710            case 8: {
2711              int rawValue = input.readEnum();
2712              org.sonar.batch.protocol.Constants.ComponentLinkType value = org.sonar.batch.protocol.Constants.ComponentLinkType.valueOf(rawValue);
2713              if (value == null) {
2714                unknownFields.mergeVarintField(1, rawValue);
2715              } else {
2716                bitField0_ |= 0x00000001;
2717                type_ = rawValue;
2718              }
2719              break;
2720            }
2721            case 18: {
2722              com.google.protobuf.ByteString bs = input.readBytes();
2723              bitField0_ |= 0x00000002;
2724              href_ = bs;
2725              break;
2726            }
2727          }
2728        }
2729      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
2730        throw new RuntimeException(e.setUnfinishedMessage(this));
2731      } catch (java.io.IOException e) {
2732        throw new RuntimeException(
2733            new com.google.protobuf.InvalidProtocolBufferException(
2734                e.getMessage()).setUnfinishedMessage(this));
2735      } finally {
2736        this.unknownFields = unknownFields.build();
2737        makeExtensionsImmutable();
2738      }
2739    }
2740    public static final com.google.protobuf.Descriptors.Descriptor
2741        getDescriptor() {
2742      return org.sonar.batch.protocol.output.BatchReport.internal_static_ComponentLink_descriptor;
2743    }
2744
2745    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
2746        internalGetFieldAccessorTable() {
2747      return org.sonar.batch.protocol.output.BatchReport.internal_static_ComponentLink_fieldAccessorTable
2748          .ensureFieldAccessorsInitialized(
2749              org.sonar.batch.protocol.output.BatchReport.ComponentLink.class, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder.class);
2750    }
2751
2752    private int bitField0_;
2753    public static final int TYPE_FIELD_NUMBER = 1;
2754    private int type_;
2755    /**
2756     * <code>optional .ComponentLinkType type = 1;</code>
2757     */
2758    public boolean hasType() {
2759      return ((bitField0_ & 0x00000001) == 0x00000001);
2760    }
2761    /**
2762     * <code>optional .ComponentLinkType type = 1;</code>
2763     */
2764    public org.sonar.batch.protocol.Constants.ComponentLinkType getType() {
2765      org.sonar.batch.protocol.Constants.ComponentLinkType result = org.sonar.batch.protocol.Constants.ComponentLinkType.valueOf(type_);
2766      return result == null ? org.sonar.batch.protocol.Constants.ComponentLinkType.HOME : result;
2767    }
2768
2769    public static final int HREF_FIELD_NUMBER = 2;
2770    private volatile java.lang.Object href_;
2771    /**
2772     * <code>optional string href = 2;</code>
2773     */
2774    public boolean hasHref() {
2775      return ((bitField0_ & 0x00000002) == 0x00000002);
2776    }
2777    /**
2778     * <code>optional string href = 2;</code>
2779     */
2780    public java.lang.String getHref() {
2781      java.lang.Object ref = href_;
2782      if (ref instanceof java.lang.String) {
2783        return (java.lang.String) ref;
2784      } else {
2785        com.google.protobuf.ByteString bs = 
2786            (com.google.protobuf.ByteString) ref;
2787        java.lang.String s = bs.toStringUtf8();
2788        if (bs.isValidUtf8()) {
2789          href_ = s;
2790        }
2791        return s;
2792      }
2793    }
2794    /**
2795     * <code>optional string href = 2;</code>
2796     */
2797    public com.google.protobuf.ByteString
2798        getHrefBytes() {
2799      java.lang.Object ref = href_;
2800      if (ref instanceof java.lang.String) {
2801        com.google.protobuf.ByteString b = 
2802            com.google.protobuf.ByteString.copyFromUtf8(
2803                (java.lang.String) ref);
2804        href_ = b;
2805        return b;
2806      } else {
2807        return (com.google.protobuf.ByteString) ref;
2808      }
2809    }
2810
2811    private byte memoizedIsInitialized = -1;
2812    public final boolean isInitialized() {
2813      byte isInitialized = memoizedIsInitialized;
2814      if (isInitialized == 1) return true;
2815      if (isInitialized == 0) return false;
2816
2817      memoizedIsInitialized = 1;
2818      return true;
2819    }
2820
2821    public void writeTo(com.google.protobuf.CodedOutputStream output)
2822                        throws java.io.IOException {
2823      if (((bitField0_ & 0x00000001) == 0x00000001)) {
2824        output.writeEnum(1, type_);
2825      }
2826      if (((bitField0_ & 0x00000002) == 0x00000002)) {
2827        com.google.protobuf.GeneratedMessage.writeString(output, 2, href_);
2828      }
2829      unknownFields.writeTo(output);
2830    }
2831
2832    public int getSerializedSize() {
2833      int size = memoizedSize;
2834      if (size != -1) return size;
2835
2836      size = 0;
2837      if (((bitField0_ & 0x00000001) == 0x00000001)) {
2838        size += com.google.protobuf.CodedOutputStream
2839          .computeEnumSize(1, type_);
2840      }
2841      if (((bitField0_ & 0x00000002) == 0x00000002)) {
2842        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, href_);
2843      }
2844      size += unknownFields.getSerializedSize();
2845      memoizedSize = size;
2846      return size;
2847    }
2848
2849    private static final long serialVersionUID = 0L;
2850    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(
2851        com.google.protobuf.ByteString data)
2852        throws com.google.protobuf.InvalidProtocolBufferException {
2853      return PARSER.parseFrom(data);
2854    }
2855    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(
2856        com.google.protobuf.ByteString data,
2857        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2858        throws com.google.protobuf.InvalidProtocolBufferException {
2859      return PARSER.parseFrom(data, extensionRegistry);
2860    }
2861    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(byte[] data)
2862        throws com.google.protobuf.InvalidProtocolBufferException {
2863      return PARSER.parseFrom(data);
2864    }
2865    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(
2866        byte[] data,
2867        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2868        throws com.google.protobuf.InvalidProtocolBufferException {
2869      return PARSER.parseFrom(data, extensionRegistry);
2870    }
2871    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(java.io.InputStream input)
2872        throws java.io.IOException {
2873      return PARSER.parseFrom(input);
2874    }
2875    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(
2876        java.io.InputStream input,
2877        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2878        throws java.io.IOException {
2879      return PARSER.parseFrom(input, extensionRegistry);
2880    }
2881    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseDelimitedFrom(java.io.InputStream input)
2882        throws java.io.IOException {
2883      return PARSER.parseDelimitedFrom(input);
2884    }
2885    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseDelimitedFrom(
2886        java.io.InputStream input,
2887        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2888        throws java.io.IOException {
2889      return PARSER.parseDelimitedFrom(input, extensionRegistry);
2890    }
2891    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(
2892        com.google.protobuf.CodedInputStream input)
2893        throws java.io.IOException {
2894      return PARSER.parseFrom(input);
2895    }
2896    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink parseFrom(
2897        com.google.protobuf.CodedInputStream input,
2898        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
2899        throws java.io.IOException {
2900      return PARSER.parseFrom(input, extensionRegistry);
2901    }
2902
2903    public Builder newBuilderForType() { return newBuilder(); }
2904    public static Builder newBuilder() {
2905      return DEFAULT_INSTANCE.toBuilder();
2906    }
2907    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.ComponentLink prototype) {
2908      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
2909    }
2910    public Builder toBuilder() {
2911      return this == DEFAULT_INSTANCE
2912          ? new Builder() : new Builder().mergeFrom(this);
2913    }
2914
2915    @java.lang.Override
2916    protected Builder newBuilderForType(
2917        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
2918      Builder builder = new Builder(parent);
2919      return builder;
2920    }
2921    /**
2922     * Protobuf type {@code ComponentLink}
2923     */
2924    public static final class Builder extends
2925        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
2926        // @@protoc_insertion_point(builder_implements:ComponentLink)
2927        org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder {
2928      public static final com.google.protobuf.Descriptors.Descriptor
2929          getDescriptor() {
2930        return org.sonar.batch.protocol.output.BatchReport.internal_static_ComponentLink_descriptor;
2931      }
2932
2933      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
2934          internalGetFieldAccessorTable() {
2935        return org.sonar.batch.protocol.output.BatchReport.internal_static_ComponentLink_fieldAccessorTable
2936            .ensureFieldAccessorsInitialized(
2937                org.sonar.batch.protocol.output.BatchReport.ComponentLink.class, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder.class);
2938      }
2939
2940      // Construct using org.sonar.batch.protocol.output.BatchReport.ComponentLink.newBuilder()
2941      private Builder() {
2942        maybeForceBuilderInitialization();
2943      }
2944
2945      private Builder(
2946          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
2947        super(parent);
2948        maybeForceBuilderInitialization();
2949      }
2950      private void maybeForceBuilderInitialization() {
2951        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
2952        }
2953      }
2954      public Builder clear() {
2955        super.clear();
2956        type_ = 0;
2957        bitField0_ = (bitField0_ & ~0x00000001);
2958        href_ = "";
2959        bitField0_ = (bitField0_ & ~0x00000002);
2960        return this;
2961      }
2962
2963      public com.google.protobuf.Descriptors.Descriptor
2964          getDescriptorForType() {
2965        return org.sonar.batch.protocol.output.BatchReport.internal_static_ComponentLink_descriptor;
2966      }
2967
2968      public org.sonar.batch.protocol.output.BatchReport.ComponentLink getDefaultInstanceForType() {
2969        return org.sonar.batch.protocol.output.BatchReport.ComponentLink.getDefaultInstance();
2970      }
2971
2972      public org.sonar.batch.protocol.output.BatchReport.ComponentLink build() {
2973        org.sonar.batch.protocol.output.BatchReport.ComponentLink result = buildPartial();
2974        if (!result.isInitialized()) {
2975          throw newUninitializedMessageException(result);
2976        }
2977        return result;
2978      }
2979
2980      public org.sonar.batch.protocol.output.BatchReport.ComponentLink buildPartial() {
2981        org.sonar.batch.protocol.output.BatchReport.ComponentLink result = new org.sonar.batch.protocol.output.BatchReport.ComponentLink(this);
2982        int from_bitField0_ = bitField0_;
2983        int to_bitField0_ = 0;
2984        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
2985          to_bitField0_ |= 0x00000001;
2986        }
2987        result.type_ = type_;
2988        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
2989          to_bitField0_ |= 0x00000002;
2990        }
2991        result.href_ = href_;
2992        result.bitField0_ = to_bitField0_;
2993        onBuilt();
2994        return result;
2995      }
2996
2997      public Builder mergeFrom(com.google.protobuf.Message other) {
2998        if (other instanceof org.sonar.batch.protocol.output.BatchReport.ComponentLink) {
2999          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.ComponentLink)other);
3000        } else {
3001          super.mergeFrom(other);
3002          return this;
3003        }
3004      }
3005
3006      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.ComponentLink other) {
3007        if (other == org.sonar.batch.protocol.output.BatchReport.ComponentLink.getDefaultInstance()) return this;
3008        if (other.hasType()) {
3009          setType(other.getType());
3010        }
3011        if (other.hasHref()) {
3012          bitField0_ |= 0x00000002;
3013          href_ = other.href_;
3014          onChanged();
3015        }
3016        this.mergeUnknownFields(other.unknownFields);
3017        onChanged();
3018        return this;
3019      }
3020
3021      public final boolean isInitialized() {
3022        return true;
3023      }
3024
3025      public Builder mergeFrom(
3026          com.google.protobuf.CodedInputStream input,
3027          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3028          throws java.io.IOException {
3029        org.sonar.batch.protocol.output.BatchReport.ComponentLink parsedMessage = null;
3030        try {
3031          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
3032        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3033          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.ComponentLink) e.getUnfinishedMessage();
3034          throw e;
3035        } finally {
3036          if (parsedMessage != null) {
3037            mergeFrom(parsedMessage);
3038          }
3039        }
3040        return this;
3041      }
3042      private int bitField0_;
3043
3044      private int type_ = 0;
3045      /**
3046       * <code>optional .ComponentLinkType type = 1;</code>
3047       */
3048      public boolean hasType() {
3049        return ((bitField0_ & 0x00000001) == 0x00000001);
3050      }
3051      /**
3052       * <code>optional .ComponentLinkType type = 1;</code>
3053       */
3054      public org.sonar.batch.protocol.Constants.ComponentLinkType getType() {
3055        org.sonar.batch.protocol.Constants.ComponentLinkType result = org.sonar.batch.protocol.Constants.ComponentLinkType.valueOf(type_);
3056        return result == null ? org.sonar.batch.protocol.Constants.ComponentLinkType.HOME : result;
3057      }
3058      /**
3059       * <code>optional .ComponentLinkType type = 1;</code>
3060       */
3061      public Builder setType(org.sonar.batch.protocol.Constants.ComponentLinkType value) {
3062        if (value == null) {
3063          throw new NullPointerException();
3064        }
3065        bitField0_ |= 0x00000001;
3066        type_ = value.getNumber();
3067        onChanged();
3068        return this;
3069      }
3070      /**
3071       * <code>optional .ComponentLinkType type = 1;</code>
3072       */
3073      public Builder clearType() {
3074        bitField0_ = (bitField0_ & ~0x00000001);
3075        type_ = 0;
3076        onChanged();
3077        return this;
3078      }
3079
3080      private java.lang.Object href_ = "";
3081      /**
3082       * <code>optional string href = 2;</code>
3083       */
3084      public boolean hasHref() {
3085        return ((bitField0_ & 0x00000002) == 0x00000002);
3086      }
3087      /**
3088       * <code>optional string href = 2;</code>
3089       */
3090      public java.lang.String getHref() {
3091        java.lang.Object ref = href_;
3092        if (!(ref instanceof java.lang.String)) {
3093          com.google.protobuf.ByteString bs =
3094              (com.google.protobuf.ByteString) ref;
3095          java.lang.String s = bs.toStringUtf8();
3096          if (bs.isValidUtf8()) {
3097            href_ = s;
3098          }
3099          return s;
3100        } else {
3101          return (java.lang.String) ref;
3102        }
3103      }
3104      /**
3105       * <code>optional string href = 2;</code>
3106       */
3107      public com.google.protobuf.ByteString
3108          getHrefBytes() {
3109        java.lang.Object ref = href_;
3110        if (ref instanceof String) {
3111          com.google.protobuf.ByteString b = 
3112              com.google.protobuf.ByteString.copyFromUtf8(
3113                  (java.lang.String) ref);
3114          href_ = b;
3115          return b;
3116        } else {
3117          return (com.google.protobuf.ByteString) ref;
3118        }
3119      }
3120      /**
3121       * <code>optional string href = 2;</code>
3122       */
3123      public Builder setHref(
3124          java.lang.String value) {
3125        if (value == null) {
3126    throw new NullPointerException();
3127  }
3128  bitField0_ |= 0x00000002;
3129        href_ = value;
3130        onChanged();
3131        return this;
3132      }
3133      /**
3134       * <code>optional string href = 2;</code>
3135       */
3136      public Builder clearHref() {
3137        bitField0_ = (bitField0_ & ~0x00000002);
3138        href_ = getDefaultInstance().getHref();
3139        onChanged();
3140        return this;
3141      }
3142      /**
3143       * <code>optional string href = 2;</code>
3144       */
3145      public Builder setHrefBytes(
3146          com.google.protobuf.ByteString value) {
3147        if (value == null) {
3148    throw new NullPointerException();
3149  }
3150  bitField0_ |= 0x00000002;
3151        href_ = value;
3152        onChanged();
3153        return this;
3154      }
3155
3156      // @@protoc_insertion_point(builder_scope:ComponentLink)
3157    }
3158
3159    // @@protoc_insertion_point(class_scope:ComponentLink)
3160    private static final org.sonar.batch.protocol.output.BatchReport.ComponentLink DEFAULT_INSTANCE;
3161    static {
3162      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.ComponentLink();
3163    }
3164
3165    public static org.sonar.batch.protocol.output.BatchReport.ComponentLink getDefaultInstance() {
3166      return DEFAULT_INSTANCE;
3167    }
3168
3169    @java.lang.Deprecated public static final com.google.protobuf.Parser<ComponentLink>
3170        PARSER = new com.google.protobuf.AbstractParser<ComponentLink>() {
3171      public ComponentLink parsePartialFrom(
3172          com.google.protobuf.CodedInputStream input,
3173          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
3174          throws com.google.protobuf.InvalidProtocolBufferException {
3175        try {
3176          return new ComponentLink(input, extensionRegistry);
3177        } catch (RuntimeException e) {
3178          if (e.getCause() instanceof
3179              com.google.protobuf.InvalidProtocolBufferException) {
3180            throw (com.google.protobuf.InvalidProtocolBufferException)
3181                e.getCause();
3182          }
3183          throw e;
3184        }
3185      }
3186    };
3187
3188    public static com.google.protobuf.Parser<ComponentLink> parser() {
3189      return PARSER;
3190    }
3191
3192    @java.lang.Override
3193    public com.google.protobuf.Parser<ComponentLink> getParserForType() {
3194      return PARSER;
3195    }
3196
3197    public org.sonar.batch.protocol.output.BatchReport.ComponentLink getDefaultInstanceForType() {
3198      return DEFAULT_INSTANCE;
3199    }
3200
3201  }
3202
3203  public interface ComponentOrBuilder extends
3204      // @@protoc_insertion_point(interface_extends:Component)
3205      com.google.protobuf.MessageOrBuilder {
3206
3207    /**
3208     * <code>optional int32 ref = 1;</code>
3209     */
3210    boolean hasRef();
3211    /**
3212     * <code>optional int32 ref = 1;</code>
3213     */
3214    int getRef();
3215
3216    /**
3217     * <code>optional string path = 2;</code>
3218     */
3219    boolean hasPath();
3220    /**
3221     * <code>optional string path = 2;</code>
3222     */
3223    java.lang.String getPath();
3224    /**
3225     * <code>optional string path = 2;</code>
3226     */
3227    com.google.protobuf.ByteString
3228        getPathBytes();
3229
3230    /**
3231     * <code>optional string name = 3;</code>
3232     */
3233    boolean hasName();
3234    /**
3235     * <code>optional string name = 3;</code>
3236     */
3237    java.lang.String getName();
3238    /**
3239     * <code>optional string name = 3;</code>
3240     */
3241    com.google.protobuf.ByteString
3242        getNameBytes();
3243
3244    /**
3245     * <code>optional .ComponentType type = 4;</code>
3246     */
3247    boolean hasType();
3248    /**
3249     * <code>optional .ComponentType type = 4;</code>
3250     */
3251    org.sonar.batch.protocol.Constants.ComponentType getType();
3252
3253    /**
3254     * <code>optional bool is_test = 5;</code>
3255     */
3256    boolean hasIsTest();
3257    /**
3258     * <code>optional bool is_test = 5;</code>
3259     */
3260    boolean getIsTest();
3261
3262    /**
3263     * <code>optional string language = 6;</code>
3264     */
3265    boolean hasLanguage();
3266    /**
3267     * <code>optional string language = 6;</code>
3268     */
3269    java.lang.String getLanguage();
3270    /**
3271     * <code>optional string language = 6;</code>
3272     */
3273    com.google.protobuf.ByteString
3274        getLanguageBytes();
3275
3276    /**
3277     * <code>repeated int32 child_ref = 7 [packed = true];</code>
3278     */
3279    java.util.List<java.lang.Integer> getChildRefList();
3280    /**
3281     * <code>repeated int32 child_ref = 7 [packed = true];</code>
3282     */
3283    int getChildRefCount();
3284    /**
3285     * <code>repeated int32 child_ref = 7 [packed = true];</code>
3286     */
3287    int getChildRef(int index);
3288
3289    /**
3290     * <code>repeated .ComponentLink link = 8;</code>
3291     */
3292    java.util.List<org.sonar.batch.protocol.output.BatchReport.ComponentLink> 
3293        getLinkList();
3294    /**
3295     * <code>repeated .ComponentLink link = 8;</code>
3296     */
3297    org.sonar.batch.protocol.output.BatchReport.ComponentLink getLink(int index);
3298    /**
3299     * <code>repeated .ComponentLink link = 8;</code>
3300     */
3301    int getLinkCount();
3302    /**
3303     * <code>repeated .ComponentLink link = 8;</code>
3304     */
3305    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder> 
3306        getLinkOrBuilderList();
3307    /**
3308     * <code>repeated .ComponentLink link = 8;</code>
3309     */
3310    org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder getLinkOrBuilder(
3311        int index);
3312
3313    /**
3314     * <code>optional string version = 9;</code>
3315     *
3316     * <pre>
3317     * Only available on PROJECT and MODULE types
3318     * </pre>
3319     */
3320    boolean hasVersion();
3321    /**
3322     * <code>optional string version = 9;</code>
3323     *
3324     * <pre>
3325     * Only available on PROJECT and MODULE types
3326     * </pre>
3327     */
3328    java.lang.String getVersion();
3329    /**
3330     * <code>optional string version = 9;</code>
3331     *
3332     * <pre>
3333     * Only available on PROJECT and MODULE types
3334     * </pre>
3335     */
3336    com.google.protobuf.ByteString
3337        getVersionBytes();
3338
3339    /**
3340     * <code>optional string key = 10;</code>
3341     *
3342     * <pre>
3343     * Only available on PROJECT and MODULE types
3344     * TODO rename this property -&gt; batchKey ? moduleKey ?
3345     * </pre>
3346     */
3347    boolean hasKey();
3348    /**
3349     * <code>optional string key = 10;</code>
3350     *
3351     * <pre>
3352     * Only available on PROJECT and MODULE types
3353     * TODO rename this property -&gt; batchKey ? moduleKey ?
3354     * </pre>
3355     */
3356    java.lang.String getKey();
3357    /**
3358     * <code>optional string key = 10;</code>
3359     *
3360     * <pre>
3361     * Only available on PROJECT and MODULE types
3362     * TODO rename this property -&gt; batchKey ? moduleKey ?
3363     * </pre>
3364     */
3365    com.google.protobuf.ByteString
3366        getKeyBytes();
3367
3368    /**
3369     * <code>optional int32 lines = 11;</code>
3370     *
3371     * <pre>
3372     * Only available on FILE type
3373     * </pre>
3374     */
3375    boolean hasLines();
3376    /**
3377     * <code>optional int32 lines = 11;</code>
3378     *
3379     * <pre>
3380     * Only available on FILE type
3381     * </pre>
3382     */
3383    int getLines();
3384
3385    /**
3386     * <code>optional string description = 12;</code>
3387     *
3388     * <pre>
3389     * Only available on PROJECT and MODULE types
3390     * </pre>
3391     */
3392    boolean hasDescription();
3393    /**
3394     * <code>optional string description = 12;</code>
3395     *
3396     * <pre>
3397     * Only available on PROJECT and MODULE types
3398     * </pre>
3399     */
3400    java.lang.String getDescription();
3401    /**
3402     * <code>optional string description = 12;</code>
3403     *
3404     * <pre>
3405     * Only available on PROJECT and MODULE types
3406     * </pre>
3407     */
3408    com.google.protobuf.ByteString
3409        getDescriptionBytes();
3410  }
3411  /**
3412   * Protobuf type {@code Component}
3413   */
3414  public  static final class Component extends
3415      com.google.protobuf.GeneratedMessage implements
3416      // @@protoc_insertion_point(message_implements:Component)
3417      ComponentOrBuilder {
3418    // Use Component.newBuilder() to construct.
3419    private Component(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
3420      super(builder);
3421    }
3422    private Component() {
3423      ref_ = 0;
3424      path_ = "";
3425      name_ = "";
3426      type_ = 0;
3427      isTest_ = false;
3428      language_ = "";
3429      childRef_ = java.util.Collections.emptyList();
3430      link_ = java.util.Collections.emptyList();
3431      version_ = "";
3432      key_ = "";
3433      lines_ = 0;
3434      description_ = "";
3435    }
3436
3437    @java.lang.Override
3438    public final com.google.protobuf.UnknownFieldSet
3439    getUnknownFields() {
3440      return this.unknownFields;
3441    }
3442    private Component(
3443        com.google.protobuf.CodedInputStream input,
3444        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
3445      this();
3446      int mutable_bitField0_ = 0;
3447      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
3448          com.google.protobuf.UnknownFieldSet.newBuilder();
3449      try {
3450        boolean done = false;
3451        while (!done) {
3452          int tag = input.readTag();
3453          switch (tag) {
3454            case 0:
3455              done = true;
3456              break;
3457            default: {
3458              if (!parseUnknownField(input, unknownFields,
3459                                     extensionRegistry, tag)) {
3460                done = true;
3461              }
3462              break;
3463            }
3464            case 8: {
3465              bitField0_ |= 0x00000001;
3466              ref_ = input.readInt32();
3467              break;
3468            }
3469            case 18: {
3470              com.google.protobuf.ByteString bs = input.readBytes();
3471              bitField0_ |= 0x00000002;
3472              path_ = bs;
3473              break;
3474            }
3475            case 26: {
3476              com.google.protobuf.ByteString bs = input.readBytes();
3477              bitField0_ |= 0x00000004;
3478              name_ = bs;
3479              break;
3480            }
3481            case 32: {
3482              int rawValue = input.readEnum();
3483              org.sonar.batch.protocol.Constants.ComponentType value = org.sonar.batch.protocol.Constants.ComponentType.valueOf(rawValue);
3484              if (value == null) {
3485                unknownFields.mergeVarintField(4, rawValue);
3486              } else {
3487                bitField0_ |= 0x00000008;
3488                type_ = rawValue;
3489              }
3490              break;
3491            }
3492            case 40: {
3493              bitField0_ |= 0x00000010;
3494              isTest_ = input.readBool();
3495              break;
3496            }
3497            case 50: {
3498              com.google.protobuf.ByteString bs = input.readBytes();
3499              bitField0_ |= 0x00000020;
3500              language_ = bs;
3501              break;
3502            }
3503            case 56: {
3504              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
3505                childRef_ = new java.util.ArrayList<java.lang.Integer>();
3506                mutable_bitField0_ |= 0x00000040;
3507              }
3508              childRef_.add(input.readInt32());
3509              break;
3510            }
3511            case 58: {
3512              int length = input.readRawVarint32();
3513              int limit = input.pushLimit(length);
3514              if (!((mutable_bitField0_ & 0x00000040) == 0x00000040) && input.getBytesUntilLimit() > 0) {
3515                childRef_ = new java.util.ArrayList<java.lang.Integer>();
3516                mutable_bitField0_ |= 0x00000040;
3517              }
3518              while (input.getBytesUntilLimit() > 0) {
3519                childRef_.add(input.readInt32());
3520              }
3521              input.popLimit(limit);
3522              break;
3523            }
3524            case 66: {
3525              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
3526                link_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.ComponentLink>();
3527                mutable_bitField0_ |= 0x00000080;
3528              }
3529              link_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.ComponentLink.parser(), extensionRegistry));
3530              break;
3531            }
3532            case 74: {
3533              com.google.protobuf.ByteString bs = input.readBytes();
3534              bitField0_ |= 0x00000040;
3535              version_ = bs;
3536              break;
3537            }
3538            case 82: {
3539              com.google.protobuf.ByteString bs = input.readBytes();
3540              bitField0_ |= 0x00000080;
3541              key_ = bs;
3542              break;
3543            }
3544            case 88: {
3545              bitField0_ |= 0x00000100;
3546              lines_ = input.readInt32();
3547              break;
3548            }
3549            case 98: {
3550              com.google.protobuf.ByteString bs = input.readBytes();
3551              bitField0_ |= 0x00000200;
3552              description_ = bs;
3553              break;
3554            }
3555          }
3556        }
3557      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
3558        throw new RuntimeException(e.setUnfinishedMessage(this));
3559      } catch (java.io.IOException e) {
3560        throw new RuntimeException(
3561            new com.google.protobuf.InvalidProtocolBufferException(
3562                e.getMessage()).setUnfinishedMessage(this));
3563      } finally {
3564        if (((mutable_bitField0_ & 0x00000040) == 0x00000040)) {
3565          childRef_ = java.util.Collections.unmodifiableList(childRef_);
3566        }
3567        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
3568          link_ = java.util.Collections.unmodifiableList(link_);
3569        }
3570        this.unknownFields = unknownFields.build();
3571        makeExtensionsImmutable();
3572      }
3573    }
3574    public static final com.google.protobuf.Descriptors.Descriptor
3575        getDescriptor() {
3576      return org.sonar.batch.protocol.output.BatchReport.internal_static_Component_descriptor;
3577    }
3578
3579    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
3580        internalGetFieldAccessorTable() {
3581      return org.sonar.batch.protocol.output.BatchReport.internal_static_Component_fieldAccessorTable
3582          .ensureFieldAccessorsInitialized(
3583              org.sonar.batch.protocol.output.BatchReport.Component.class, org.sonar.batch.protocol.output.BatchReport.Component.Builder.class);
3584    }
3585
3586    private int bitField0_;
3587    public static final int REF_FIELD_NUMBER = 1;
3588    private int ref_;
3589    /**
3590     * <code>optional int32 ref = 1;</code>
3591     */
3592    public boolean hasRef() {
3593      return ((bitField0_ & 0x00000001) == 0x00000001);
3594    }
3595    /**
3596     * <code>optional int32 ref = 1;</code>
3597     */
3598    public int getRef() {
3599      return ref_;
3600    }
3601
3602    public static final int PATH_FIELD_NUMBER = 2;
3603    private volatile java.lang.Object path_;
3604    /**
3605     * <code>optional string path = 2;</code>
3606     */
3607    public boolean hasPath() {
3608      return ((bitField0_ & 0x00000002) == 0x00000002);
3609    }
3610    /**
3611     * <code>optional string path = 2;</code>
3612     */
3613    public java.lang.String getPath() {
3614      java.lang.Object ref = path_;
3615      if (ref instanceof java.lang.String) {
3616        return (java.lang.String) ref;
3617      } else {
3618        com.google.protobuf.ByteString bs = 
3619            (com.google.protobuf.ByteString) ref;
3620        java.lang.String s = bs.toStringUtf8();
3621        if (bs.isValidUtf8()) {
3622          path_ = s;
3623        }
3624        return s;
3625      }
3626    }
3627    /**
3628     * <code>optional string path = 2;</code>
3629     */
3630    public com.google.protobuf.ByteString
3631        getPathBytes() {
3632      java.lang.Object ref = path_;
3633      if (ref instanceof java.lang.String) {
3634        com.google.protobuf.ByteString b = 
3635            com.google.protobuf.ByteString.copyFromUtf8(
3636                (java.lang.String) ref);
3637        path_ = b;
3638        return b;
3639      } else {
3640        return (com.google.protobuf.ByteString) ref;
3641      }
3642    }
3643
3644    public static final int NAME_FIELD_NUMBER = 3;
3645    private volatile java.lang.Object name_;
3646    /**
3647     * <code>optional string name = 3;</code>
3648     */
3649    public boolean hasName() {
3650      return ((bitField0_ & 0x00000004) == 0x00000004);
3651    }
3652    /**
3653     * <code>optional string name = 3;</code>
3654     */
3655    public java.lang.String getName() {
3656      java.lang.Object ref = name_;
3657      if (ref instanceof java.lang.String) {
3658        return (java.lang.String) ref;
3659      } else {
3660        com.google.protobuf.ByteString bs = 
3661            (com.google.protobuf.ByteString) ref;
3662        java.lang.String s = bs.toStringUtf8();
3663        if (bs.isValidUtf8()) {
3664          name_ = s;
3665        }
3666        return s;
3667      }
3668    }
3669    /**
3670     * <code>optional string name = 3;</code>
3671     */
3672    public com.google.protobuf.ByteString
3673        getNameBytes() {
3674      java.lang.Object ref = name_;
3675      if (ref instanceof java.lang.String) {
3676        com.google.protobuf.ByteString b = 
3677            com.google.protobuf.ByteString.copyFromUtf8(
3678                (java.lang.String) ref);
3679        name_ = b;
3680        return b;
3681      } else {
3682        return (com.google.protobuf.ByteString) ref;
3683      }
3684    }
3685
3686    public static final int TYPE_FIELD_NUMBER = 4;
3687    private int type_;
3688    /**
3689     * <code>optional .ComponentType type = 4;</code>
3690     */
3691    public boolean hasType() {
3692      return ((bitField0_ & 0x00000008) == 0x00000008);
3693    }
3694    /**
3695     * <code>optional .ComponentType type = 4;</code>
3696     */
3697    public org.sonar.batch.protocol.Constants.ComponentType getType() {
3698      org.sonar.batch.protocol.Constants.ComponentType result = org.sonar.batch.protocol.Constants.ComponentType.valueOf(type_);
3699      return result == null ? org.sonar.batch.protocol.Constants.ComponentType.PROJECT : result;
3700    }
3701
3702    public static final int IS_TEST_FIELD_NUMBER = 5;
3703    private boolean isTest_;
3704    /**
3705     * <code>optional bool is_test = 5;</code>
3706     */
3707    public boolean hasIsTest() {
3708      return ((bitField0_ & 0x00000010) == 0x00000010);
3709    }
3710    /**
3711     * <code>optional bool is_test = 5;</code>
3712     */
3713    public boolean getIsTest() {
3714      return isTest_;
3715    }
3716
3717    public static final int LANGUAGE_FIELD_NUMBER = 6;
3718    private volatile java.lang.Object language_;
3719    /**
3720     * <code>optional string language = 6;</code>
3721     */
3722    public boolean hasLanguage() {
3723      return ((bitField0_ & 0x00000020) == 0x00000020);
3724    }
3725    /**
3726     * <code>optional string language = 6;</code>
3727     */
3728    public java.lang.String getLanguage() {
3729      java.lang.Object ref = language_;
3730      if (ref instanceof java.lang.String) {
3731        return (java.lang.String) ref;
3732      } else {
3733        com.google.protobuf.ByteString bs = 
3734            (com.google.protobuf.ByteString) ref;
3735        java.lang.String s = bs.toStringUtf8();
3736        if (bs.isValidUtf8()) {
3737          language_ = s;
3738        }
3739        return s;
3740      }
3741    }
3742    /**
3743     * <code>optional string language = 6;</code>
3744     */
3745    public com.google.protobuf.ByteString
3746        getLanguageBytes() {
3747      java.lang.Object ref = language_;
3748      if (ref instanceof java.lang.String) {
3749        com.google.protobuf.ByteString b = 
3750            com.google.protobuf.ByteString.copyFromUtf8(
3751                (java.lang.String) ref);
3752        language_ = b;
3753        return b;
3754      } else {
3755        return (com.google.protobuf.ByteString) ref;
3756      }
3757    }
3758
3759    public static final int CHILD_REF_FIELD_NUMBER = 7;
3760    private java.util.List<java.lang.Integer> childRef_;
3761    /**
3762     * <code>repeated int32 child_ref = 7 [packed = true];</code>
3763     */
3764    public java.util.List<java.lang.Integer>
3765        getChildRefList() {
3766      return childRef_;
3767    }
3768    /**
3769     * <code>repeated int32 child_ref = 7 [packed = true];</code>
3770     */
3771    public int getChildRefCount() {
3772      return childRef_.size();
3773    }
3774    /**
3775     * <code>repeated int32 child_ref = 7 [packed = true];</code>
3776     */
3777    public int getChildRef(int index) {
3778      return childRef_.get(index);
3779    }
3780    private int childRefMemoizedSerializedSize = -1;
3781
3782    public static final int LINK_FIELD_NUMBER = 8;
3783    private java.util.List<org.sonar.batch.protocol.output.BatchReport.ComponentLink> link_;
3784    /**
3785     * <code>repeated .ComponentLink link = 8;</code>
3786     */
3787    public java.util.List<org.sonar.batch.protocol.output.BatchReport.ComponentLink> getLinkList() {
3788      return link_;
3789    }
3790    /**
3791     * <code>repeated .ComponentLink link = 8;</code>
3792     */
3793    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder> 
3794        getLinkOrBuilderList() {
3795      return link_;
3796    }
3797    /**
3798     * <code>repeated .ComponentLink link = 8;</code>
3799     */
3800    public int getLinkCount() {
3801      return link_.size();
3802    }
3803    /**
3804     * <code>repeated .ComponentLink link = 8;</code>
3805     */
3806    public org.sonar.batch.protocol.output.BatchReport.ComponentLink getLink(int index) {
3807      return link_.get(index);
3808    }
3809    /**
3810     * <code>repeated .ComponentLink link = 8;</code>
3811     */
3812    public org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder getLinkOrBuilder(
3813        int index) {
3814      return link_.get(index);
3815    }
3816
3817    public static final int VERSION_FIELD_NUMBER = 9;
3818    private volatile java.lang.Object version_;
3819    /**
3820     * <code>optional string version = 9;</code>
3821     *
3822     * <pre>
3823     * Only available on PROJECT and MODULE types
3824     * </pre>
3825     */
3826    public boolean hasVersion() {
3827      return ((bitField0_ & 0x00000040) == 0x00000040);
3828    }
3829    /**
3830     * <code>optional string version = 9;</code>
3831     *
3832     * <pre>
3833     * Only available on PROJECT and MODULE types
3834     * </pre>
3835     */
3836    public java.lang.String getVersion() {
3837      java.lang.Object ref = version_;
3838      if (ref instanceof java.lang.String) {
3839        return (java.lang.String) ref;
3840      } else {
3841        com.google.protobuf.ByteString bs = 
3842            (com.google.protobuf.ByteString) ref;
3843        java.lang.String s = bs.toStringUtf8();
3844        if (bs.isValidUtf8()) {
3845          version_ = s;
3846        }
3847        return s;
3848      }
3849    }
3850    /**
3851     * <code>optional string version = 9;</code>
3852     *
3853     * <pre>
3854     * Only available on PROJECT and MODULE types
3855     * </pre>
3856     */
3857    public com.google.protobuf.ByteString
3858        getVersionBytes() {
3859      java.lang.Object ref = version_;
3860      if (ref instanceof java.lang.String) {
3861        com.google.protobuf.ByteString b = 
3862            com.google.protobuf.ByteString.copyFromUtf8(
3863                (java.lang.String) ref);
3864        version_ = b;
3865        return b;
3866      } else {
3867        return (com.google.protobuf.ByteString) ref;
3868      }
3869    }
3870
3871    public static final int KEY_FIELD_NUMBER = 10;
3872    private volatile java.lang.Object key_;
3873    /**
3874     * <code>optional string key = 10;</code>
3875     *
3876     * <pre>
3877     * Only available on PROJECT and MODULE types
3878     * TODO rename this property -&gt; batchKey ? moduleKey ?
3879     * </pre>
3880     */
3881    public boolean hasKey() {
3882      return ((bitField0_ & 0x00000080) == 0x00000080);
3883    }
3884    /**
3885     * <code>optional string key = 10;</code>
3886     *
3887     * <pre>
3888     * Only available on PROJECT and MODULE types
3889     * TODO rename this property -&gt; batchKey ? moduleKey ?
3890     * </pre>
3891     */
3892    public java.lang.String getKey() {
3893      java.lang.Object ref = key_;
3894      if (ref instanceof java.lang.String) {
3895        return (java.lang.String) ref;
3896      } else {
3897        com.google.protobuf.ByteString bs = 
3898            (com.google.protobuf.ByteString) ref;
3899        java.lang.String s = bs.toStringUtf8();
3900        if (bs.isValidUtf8()) {
3901          key_ = s;
3902        }
3903        return s;
3904      }
3905    }
3906    /**
3907     * <code>optional string key = 10;</code>
3908     *
3909     * <pre>
3910     * Only available on PROJECT and MODULE types
3911     * TODO rename this property -&gt; batchKey ? moduleKey ?
3912     * </pre>
3913     */
3914    public com.google.protobuf.ByteString
3915        getKeyBytes() {
3916      java.lang.Object ref = key_;
3917      if (ref instanceof java.lang.String) {
3918        com.google.protobuf.ByteString b = 
3919            com.google.protobuf.ByteString.copyFromUtf8(
3920                (java.lang.String) ref);
3921        key_ = b;
3922        return b;
3923      } else {
3924        return (com.google.protobuf.ByteString) ref;
3925      }
3926    }
3927
3928    public static final int LINES_FIELD_NUMBER = 11;
3929    private int lines_;
3930    /**
3931     * <code>optional int32 lines = 11;</code>
3932     *
3933     * <pre>
3934     * Only available on FILE type
3935     * </pre>
3936     */
3937    public boolean hasLines() {
3938      return ((bitField0_ & 0x00000100) == 0x00000100);
3939    }
3940    /**
3941     * <code>optional int32 lines = 11;</code>
3942     *
3943     * <pre>
3944     * Only available on FILE type
3945     * </pre>
3946     */
3947    public int getLines() {
3948      return lines_;
3949    }
3950
3951    public static final int DESCRIPTION_FIELD_NUMBER = 12;
3952    private volatile java.lang.Object description_;
3953    /**
3954     * <code>optional string description = 12;</code>
3955     *
3956     * <pre>
3957     * Only available on PROJECT and MODULE types
3958     * </pre>
3959     */
3960    public boolean hasDescription() {
3961      return ((bitField0_ & 0x00000200) == 0x00000200);
3962    }
3963    /**
3964     * <code>optional string description = 12;</code>
3965     *
3966     * <pre>
3967     * Only available on PROJECT and MODULE types
3968     * </pre>
3969     */
3970    public java.lang.String getDescription() {
3971      java.lang.Object ref = description_;
3972      if (ref instanceof java.lang.String) {
3973        return (java.lang.String) ref;
3974      } else {
3975        com.google.protobuf.ByteString bs = 
3976            (com.google.protobuf.ByteString) ref;
3977        java.lang.String s = bs.toStringUtf8();
3978        if (bs.isValidUtf8()) {
3979          description_ = s;
3980        }
3981        return s;
3982      }
3983    }
3984    /**
3985     * <code>optional string description = 12;</code>
3986     *
3987     * <pre>
3988     * Only available on PROJECT and MODULE types
3989     * </pre>
3990     */
3991    public com.google.protobuf.ByteString
3992        getDescriptionBytes() {
3993      java.lang.Object ref = description_;
3994      if (ref instanceof java.lang.String) {
3995        com.google.protobuf.ByteString b = 
3996            com.google.protobuf.ByteString.copyFromUtf8(
3997                (java.lang.String) ref);
3998        description_ = b;
3999        return b;
4000      } else {
4001        return (com.google.protobuf.ByteString) ref;
4002      }
4003    }
4004
4005    private byte memoizedIsInitialized = -1;
4006    public final boolean isInitialized() {
4007      byte isInitialized = memoizedIsInitialized;
4008      if (isInitialized == 1) return true;
4009      if (isInitialized == 0) return false;
4010
4011      memoizedIsInitialized = 1;
4012      return true;
4013    }
4014
4015    public void writeTo(com.google.protobuf.CodedOutputStream output)
4016                        throws java.io.IOException {
4017      getSerializedSize();
4018      if (((bitField0_ & 0x00000001) == 0x00000001)) {
4019        output.writeInt32(1, ref_);
4020      }
4021      if (((bitField0_ & 0x00000002) == 0x00000002)) {
4022        com.google.protobuf.GeneratedMessage.writeString(output, 2, path_);
4023      }
4024      if (((bitField0_ & 0x00000004) == 0x00000004)) {
4025        com.google.protobuf.GeneratedMessage.writeString(output, 3, name_);
4026      }
4027      if (((bitField0_ & 0x00000008) == 0x00000008)) {
4028        output.writeEnum(4, type_);
4029      }
4030      if (((bitField0_ & 0x00000010) == 0x00000010)) {
4031        output.writeBool(5, isTest_);
4032      }
4033      if (((bitField0_ & 0x00000020) == 0x00000020)) {
4034        com.google.protobuf.GeneratedMessage.writeString(output, 6, language_);
4035      }
4036      if (getChildRefList().size() > 0) {
4037        output.writeRawVarint32(58);
4038        output.writeRawVarint32(childRefMemoizedSerializedSize);
4039      }
4040      for (int i = 0; i < childRef_.size(); i++) {
4041        output.writeInt32NoTag(childRef_.get(i));
4042      }
4043      for (int i = 0; i < link_.size(); i++) {
4044        output.writeMessage(8, link_.get(i));
4045      }
4046      if (((bitField0_ & 0x00000040) == 0x00000040)) {
4047        com.google.protobuf.GeneratedMessage.writeString(output, 9, version_);
4048      }
4049      if (((bitField0_ & 0x00000080) == 0x00000080)) {
4050        com.google.protobuf.GeneratedMessage.writeString(output, 10, key_);
4051      }
4052      if (((bitField0_ & 0x00000100) == 0x00000100)) {
4053        output.writeInt32(11, lines_);
4054      }
4055      if (((bitField0_ & 0x00000200) == 0x00000200)) {
4056        com.google.protobuf.GeneratedMessage.writeString(output, 12, description_);
4057      }
4058      unknownFields.writeTo(output);
4059    }
4060
4061    public int getSerializedSize() {
4062      int size = memoizedSize;
4063      if (size != -1) return size;
4064
4065      size = 0;
4066      if (((bitField0_ & 0x00000001) == 0x00000001)) {
4067        size += com.google.protobuf.CodedOutputStream
4068          .computeInt32Size(1, ref_);
4069      }
4070      if (((bitField0_ & 0x00000002) == 0x00000002)) {
4071        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, path_);
4072      }
4073      if (((bitField0_ & 0x00000004) == 0x00000004)) {
4074        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, name_);
4075      }
4076      if (((bitField0_ & 0x00000008) == 0x00000008)) {
4077        size += com.google.protobuf.CodedOutputStream
4078          .computeEnumSize(4, type_);
4079      }
4080      if (((bitField0_ & 0x00000010) == 0x00000010)) {
4081        size += com.google.protobuf.CodedOutputStream
4082          .computeBoolSize(5, isTest_);
4083      }
4084      if (((bitField0_ & 0x00000020) == 0x00000020)) {
4085        size += com.google.protobuf.GeneratedMessage.computeStringSize(6, language_);
4086      }
4087      {
4088        int dataSize = 0;
4089        for (int i = 0; i < childRef_.size(); i++) {
4090          dataSize += com.google.protobuf.CodedOutputStream
4091            .computeInt32SizeNoTag(childRef_.get(i));
4092        }
4093        size += dataSize;
4094        if (!getChildRefList().isEmpty()) {
4095          size += 1;
4096          size += com.google.protobuf.CodedOutputStream
4097              .computeInt32SizeNoTag(dataSize);
4098        }
4099        childRefMemoizedSerializedSize = dataSize;
4100      }
4101      for (int i = 0; i < link_.size(); i++) {
4102        size += com.google.protobuf.CodedOutputStream
4103          .computeMessageSize(8, link_.get(i));
4104      }
4105      if (((bitField0_ & 0x00000040) == 0x00000040)) {
4106        size += com.google.protobuf.GeneratedMessage.computeStringSize(9, version_);
4107      }
4108      if (((bitField0_ & 0x00000080) == 0x00000080)) {
4109        size += com.google.protobuf.GeneratedMessage.computeStringSize(10, key_);
4110      }
4111      if (((bitField0_ & 0x00000100) == 0x00000100)) {
4112        size += com.google.protobuf.CodedOutputStream
4113          .computeInt32Size(11, lines_);
4114      }
4115      if (((bitField0_ & 0x00000200) == 0x00000200)) {
4116        size += com.google.protobuf.GeneratedMessage.computeStringSize(12, description_);
4117      }
4118      size += unknownFields.getSerializedSize();
4119      memoizedSize = size;
4120      return size;
4121    }
4122
4123    private static final long serialVersionUID = 0L;
4124    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(
4125        com.google.protobuf.ByteString data)
4126        throws com.google.protobuf.InvalidProtocolBufferException {
4127      return PARSER.parseFrom(data);
4128    }
4129    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(
4130        com.google.protobuf.ByteString data,
4131        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4132        throws com.google.protobuf.InvalidProtocolBufferException {
4133      return PARSER.parseFrom(data, extensionRegistry);
4134    }
4135    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(byte[] data)
4136        throws com.google.protobuf.InvalidProtocolBufferException {
4137      return PARSER.parseFrom(data);
4138    }
4139    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(
4140        byte[] data,
4141        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4142        throws com.google.protobuf.InvalidProtocolBufferException {
4143      return PARSER.parseFrom(data, extensionRegistry);
4144    }
4145    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(java.io.InputStream input)
4146        throws java.io.IOException {
4147      return PARSER.parseFrom(input);
4148    }
4149    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(
4150        java.io.InputStream input,
4151        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4152        throws java.io.IOException {
4153      return PARSER.parseFrom(input, extensionRegistry);
4154    }
4155    public static org.sonar.batch.protocol.output.BatchReport.Component parseDelimitedFrom(java.io.InputStream input)
4156        throws java.io.IOException {
4157      return PARSER.parseDelimitedFrom(input);
4158    }
4159    public static org.sonar.batch.protocol.output.BatchReport.Component parseDelimitedFrom(
4160        java.io.InputStream input,
4161        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4162        throws java.io.IOException {
4163      return PARSER.parseDelimitedFrom(input, extensionRegistry);
4164    }
4165    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(
4166        com.google.protobuf.CodedInputStream input)
4167        throws java.io.IOException {
4168      return PARSER.parseFrom(input);
4169    }
4170    public static org.sonar.batch.protocol.output.BatchReport.Component parseFrom(
4171        com.google.protobuf.CodedInputStream input,
4172        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4173        throws java.io.IOException {
4174      return PARSER.parseFrom(input, extensionRegistry);
4175    }
4176
4177    public Builder newBuilderForType() { return newBuilder(); }
4178    public static Builder newBuilder() {
4179      return DEFAULT_INSTANCE.toBuilder();
4180    }
4181    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Component prototype) {
4182      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
4183    }
4184    public Builder toBuilder() {
4185      return this == DEFAULT_INSTANCE
4186          ? new Builder() : new Builder().mergeFrom(this);
4187    }
4188
4189    @java.lang.Override
4190    protected Builder newBuilderForType(
4191        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
4192      Builder builder = new Builder(parent);
4193      return builder;
4194    }
4195    /**
4196     * Protobuf type {@code Component}
4197     */
4198    public static final class Builder extends
4199        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
4200        // @@protoc_insertion_point(builder_implements:Component)
4201        org.sonar.batch.protocol.output.BatchReport.ComponentOrBuilder {
4202      public static final com.google.protobuf.Descriptors.Descriptor
4203          getDescriptor() {
4204        return org.sonar.batch.protocol.output.BatchReport.internal_static_Component_descriptor;
4205      }
4206
4207      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
4208          internalGetFieldAccessorTable() {
4209        return org.sonar.batch.protocol.output.BatchReport.internal_static_Component_fieldAccessorTable
4210            .ensureFieldAccessorsInitialized(
4211                org.sonar.batch.protocol.output.BatchReport.Component.class, org.sonar.batch.protocol.output.BatchReport.Component.Builder.class);
4212      }
4213
4214      // Construct using org.sonar.batch.protocol.output.BatchReport.Component.newBuilder()
4215      private Builder() {
4216        maybeForceBuilderInitialization();
4217      }
4218
4219      private Builder(
4220          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
4221        super(parent);
4222        maybeForceBuilderInitialization();
4223      }
4224      private void maybeForceBuilderInitialization() {
4225        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
4226          getLinkFieldBuilder();
4227        }
4228      }
4229      public Builder clear() {
4230        super.clear();
4231        ref_ = 0;
4232        bitField0_ = (bitField0_ & ~0x00000001);
4233        path_ = "";
4234        bitField0_ = (bitField0_ & ~0x00000002);
4235        name_ = "";
4236        bitField0_ = (bitField0_ & ~0x00000004);
4237        type_ = 0;
4238        bitField0_ = (bitField0_ & ~0x00000008);
4239        isTest_ = false;
4240        bitField0_ = (bitField0_ & ~0x00000010);
4241        language_ = "";
4242        bitField0_ = (bitField0_ & ~0x00000020);
4243        childRef_ = java.util.Collections.emptyList();
4244        bitField0_ = (bitField0_ & ~0x00000040);
4245        if (linkBuilder_ == null) {
4246          link_ = java.util.Collections.emptyList();
4247          bitField0_ = (bitField0_ & ~0x00000080);
4248        } else {
4249          linkBuilder_.clear();
4250        }
4251        version_ = "";
4252        bitField0_ = (bitField0_ & ~0x00000100);
4253        key_ = "";
4254        bitField0_ = (bitField0_ & ~0x00000200);
4255        lines_ = 0;
4256        bitField0_ = (bitField0_ & ~0x00000400);
4257        description_ = "";
4258        bitField0_ = (bitField0_ & ~0x00000800);
4259        return this;
4260      }
4261
4262      public com.google.protobuf.Descriptors.Descriptor
4263          getDescriptorForType() {
4264        return org.sonar.batch.protocol.output.BatchReport.internal_static_Component_descriptor;
4265      }
4266
4267      public org.sonar.batch.protocol.output.BatchReport.Component getDefaultInstanceForType() {
4268        return org.sonar.batch.protocol.output.BatchReport.Component.getDefaultInstance();
4269      }
4270
4271      public org.sonar.batch.protocol.output.BatchReport.Component build() {
4272        org.sonar.batch.protocol.output.BatchReport.Component result = buildPartial();
4273        if (!result.isInitialized()) {
4274          throw newUninitializedMessageException(result);
4275        }
4276        return result;
4277      }
4278
4279      public org.sonar.batch.protocol.output.BatchReport.Component buildPartial() {
4280        org.sonar.batch.protocol.output.BatchReport.Component result = new org.sonar.batch.protocol.output.BatchReport.Component(this);
4281        int from_bitField0_ = bitField0_;
4282        int to_bitField0_ = 0;
4283        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
4284          to_bitField0_ |= 0x00000001;
4285        }
4286        result.ref_ = ref_;
4287        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
4288          to_bitField0_ |= 0x00000002;
4289        }
4290        result.path_ = path_;
4291        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
4292          to_bitField0_ |= 0x00000004;
4293        }
4294        result.name_ = name_;
4295        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
4296          to_bitField0_ |= 0x00000008;
4297        }
4298        result.type_ = type_;
4299        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
4300          to_bitField0_ |= 0x00000010;
4301        }
4302        result.isTest_ = isTest_;
4303        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
4304          to_bitField0_ |= 0x00000020;
4305        }
4306        result.language_ = language_;
4307        if (((bitField0_ & 0x00000040) == 0x00000040)) {
4308          childRef_ = java.util.Collections.unmodifiableList(childRef_);
4309          bitField0_ = (bitField0_ & ~0x00000040);
4310        }
4311        result.childRef_ = childRef_;
4312        if (linkBuilder_ == null) {
4313          if (((bitField0_ & 0x00000080) == 0x00000080)) {
4314            link_ = java.util.Collections.unmodifiableList(link_);
4315            bitField0_ = (bitField0_ & ~0x00000080);
4316          }
4317          result.link_ = link_;
4318        } else {
4319          result.link_ = linkBuilder_.build();
4320        }
4321        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
4322          to_bitField0_ |= 0x00000040;
4323        }
4324        result.version_ = version_;
4325        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
4326          to_bitField0_ |= 0x00000080;
4327        }
4328        result.key_ = key_;
4329        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
4330          to_bitField0_ |= 0x00000100;
4331        }
4332        result.lines_ = lines_;
4333        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
4334          to_bitField0_ |= 0x00000200;
4335        }
4336        result.description_ = description_;
4337        result.bitField0_ = to_bitField0_;
4338        onBuilt();
4339        return result;
4340      }
4341
4342      public Builder mergeFrom(com.google.protobuf.Message other) {
4343        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Component) {
4344          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Component)other);
4345        } else {
4346          super.mergeFrom(other);
4347          return this;
4348        }
4349      }
4350
4351      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Component other) {
4352        if (other == org.sonar.batch.protocol.output.BatchReport.Component.getDefaultInstance()) return this;
4353        if (other.hasRef()) {
4354          setRef(other.getRef());
4355        }
4356        if (other.hasPath()) {
4357          bitField0_ |= 0x00000002;
4358          path_ = other.path_;
4359          onChanged();
4360        }
4361        if (other.hasName()) {
4362          bitField0_ |= 0x00000004;
4363          name_ = other.name_;
4364          onChanged();
4365        }
4366        if (other.hasType()) {
4367          setType(other.getType());
4368        }
4369        if (other.hasIsTest()) {
4370          setIsTest(other.getIsTest());
4371        }
4372        if (other.hasLanguage()) {
4373          bitField0_ |= 0x00000020;
4374          language_ = other.language_;
4375          onChanged();
4376        }
4377        if (!other.childRef_.isEmpty()) {
4378          if (childRef_.isEmpty()) {
4379            childRef_ = other.childRef_;
4380            bitField0_ = (bitField0_ & ~0x00000040);
4381          } else {
4382            ensureChildRefIsMutable();
4383            childRef_.addAll(other.childRef_);
4384          }
4385          onChanged();
4386        }
4387        if (linkBuilder_ == null) {
4388          if (!other.link_.isEmpty()) {
4389            if (link_.isEmpty()) {
4390              link_ = other.link_;
4391              bitField0_ = (bitField0_ & ~0x00000080);
4392            } else {
4393              ensureLinkIsMutable();
4394              link_.addAll(other.link_);
4395            }
4396            onChanged();
4397          }
4398        } else {
4399          if (!other.link_.isEmpty()) {
4400            if (linkBuilder_.isEmpty()) {
4401              linkBuilder_.dispose();
4402              linkBuilder_ = null;
4403              link_ = other.link_;
4404              bitField0_ = (bitField0_ & ~0x00000080);
4405              linkBuilder_ = 
4406                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
4407                   getLinkFieldBuilder() : null;
4408            } else {
4409              linkBuilder_.addAllMessages(other.link_);
4410            }
4411          }
4412        }
4413        if (other.hasVersion()) {
4414          bitField0_ |= 0x00000100;
4415          version_ = other.version_;
4416          onChanged();
4417        }
4418        if (other.hasKey()) {
4419          bitField0_ |= 0x00000200;
4420          key_ = other.key_;
4421          onChanged();
4422        }
4423        if (other.hasLines()) {
4424          setLines(other.getLines());
4425        }
4426        if (other.hasDescription()) {
4427          bitField0_ |= 0x00000800;
4428          description_ = other.description_;
4429          onChanged();
4430        }
4431        this.mergeUnknownFields(other.unknownFields);
4432        onChanged();
4433        return this;
4434      }
4435
4436      public final boolean isInitialized() {
4437        return true;
4438      }
4439
4440      public Builder mergeFrom(
4441          com.google.protobuf.CodedInputStream input,
4442          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
4443          throws java.io.IOException {
4444        org.sonar.batch.protocol.output.BatchReport.Component parsedMessage = null;
4445        try {
4446          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
4447        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
4448          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Component) e.getUnfinishedMessage();
4449          throw e;
4450        } finally {
4451          if (parsedMessage != null) {
4452            mergeFrom(parsedMessage);
4453          }
4454        }
4455        return this;
4456      }
4457      private int bitField0_;
4458
4459      private int ref_ ;
4460      /**
4461       * <code>optional int32 ref = 1;</code>
4462       */
4463      public boolean hasRef() {
4464        return ((bitField0_ & 0x00000001) == 0x00000001);
4465      }
4466      /**
4467       * <code>optional int32 ref = 1;</code>
4468       */
4469      public int getRef() {
4470        return ref_;
4471      }
4472      /**
4473       * <code>optional int32 ref = 1;</code>
4474       */
4475      public Builder setRef(int value) {
4476        bitField0_ |= 0x00000001;
4477        ref_ = value;
4478        onChanged();
4479        return this;
4480      }
4481      /**
4482       * <code>optional int32 ref = 1;</code>
4483       */
4484      public Builder clearRef() {
4485        bitField0_ = (bitField0_ & ~0x00000001);
4486        ref_ = 0;
4487        onChanged();
4488        return this;
4489      }
4490
4491      private java.lang.Object path_ = "";
4492      /**
4493       * <code>optional string path = 2;</code>
4494       */
4495      public boolean hasPath() {
4496        return ((bitField0_ & 0x00000002) == 0x00000002);
4497      }
4498      /**
4499       * <code>optional string path = 2;</code>
4500       */
4501      public java.lang.String getPath() {
4502        java.lang.Object ref = path_;
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            path_ = s;
4509          }
4510          return s;
4511        } else {
4512          return (java.lang.String) ref;
4513        }
4514      }
4515      /**
4516       * <code>optional string path = 2;</code>
4517       */
4518      public com.google.protobuf.ByteString
4519          getPathBytes() {
4520        java.lang.Object ref = path_;
4521        if (ref instanceof String) {
4522          com.google.protobuf.ByteString b = 
4523              com.google.protobuf.ByteString.copyFromUtf8(
4524                  (java.lang.String) ref);
4525          path_ = b;
4526          return b;
4527        } else {
4528          return (com.google.protobuf.ByteString) ref;
4529        }
4530      }
4531      /**
4532       * <code>optional string path = 2;</code>
4533       */
4534      public Builder setPath(
4535          java.lang.String value) {
4536        if (value == null) {
4537    throw new NullPointerException();
4538  }
4539  bitField0_ |= 0x00000002;
4540        path_ = value;
4541        onChanged();
4542        return this;
4543      }
4544      /**
4545       * <code>optional string path = 2;</code>
4546       */
4547      public Builder clearPath() {
4548        bitField0_ = (bitField0_ & ~0x00000002);
4549        path_ = getDefaultInstance().getPath();
4550        onChanged();
4551        return this;
4552      }
4553      /**
4554       * <code>optional string path = 2;</code>
4555       */
4556      public Builder setPathBytes(
4557          com.google.protobuf.ByteString value) {
4558        if (value == null) {
4559    throw new NullPointerException();
4560  }
4561  bitField0_ |= 0x00000002;
4562        path_ = value;
4563        onChanged();
4564        return this;
4565      }
4566
4567      private java.lang.Object name_ = "";
4568      /**
4569       * <code>optional string name = 3;</code>
4570       */
4571      public boolean hasName() {
4572        return ((bitField0_ & 0x00000004) == 0x00000004);
4573      }
4574      /**
4575       * <code>optional string name = 3;</code>
4576       */
4577      public java.lang.String getName() {
4578        java.lang.Object ref = name_;
4579        if (!(ref instanceof java.lang.String)) {
4580          com.google.protobuf.ByteString bs =
4581              (com.google.protobuf.ByteString) ref;
4582          java.lang.String s = bs.toStringUtf8();
4583          if (bs.isValidUtf8()) {
4584            name_ = s;
4585          }
4586          return s;
4587        } else {
4588          return (java.lang.String) ref;
4589        }
4590      }
4591      /**
4592       * <code>optional string name = 3;</code>
4593       */
4594      public com.google.protobuf.ByteString
4595          getNameBytes() {
4596        java.lang.Object ref = name_;
4597        if (ref instanceof String) {
4598          com.google.protobuf.ByteString b = 
4599              com.google.protobuf.ByteString.copyFromUtf8(
4600                  (java.lang.String) ref);
4601          name_ = b;
4602          return b;
4603        } else {
4604          return (com.google.protobuf.ByteString) ref;
4605        }
4606      }
4607      /**
4608       * <code>optional string name = 3;</code>
4609       */
4610      public Builder setName(
4611          java.lang.String value) {
4612        if (value == null) {
4613    throw new NullPointerException();
4614  }
4615  bitField0_ |= 0x00000004;
4616        name_ = value;
4617        onChanged();
4618        return this;
4619      }
4620      /**
4621       * <code>optional string name = 3;</code>
4622       */
4623      public Builder clearName() {
4624        bitField0_ = (bitField0_ & ~0x00000004);
4625        name_ = getDefaultInstance().getName();
4626        onChanged();
4627        return this;
4628      }
4629      /**
4630       * <code>optional string name = 3;</code>
4631       */
4632      public Builder setNameBytes(
4633          com.google.protobuf.ByteString value) {
4634        if (value == null) {
4635    throw new NullPointerException();
4636  }
4637  bitField0_ |= 0x00000004;
4638        name_ = value;
4639        onChanged();
4640        return this;
4641      }
4642
4643      private int type_ = 0;
4644      /**
4645       * <code>optional .ComponentType type = 4;</code>
4646       */
4647      public boolean hasType() {
4648        return ((bitField0_ & 0x00000008) == 0x00000008);
4649      }
4650      /**
4651       * <code>optional .ComponentType type = 4;</code>
4652       */
4653      public org.sonar.batch.protocol.Constants.ComponentType getType() {
4654        org.sonar.batch.protocol.Constants.ComponentType result = org.sonar.batch.protocol.Constants.ComponentType.valueOf(type_);
4655        return result == null ? org.sonar.batch.protocol.Constants.ComponentType.PROJECT : result;
4656      }
4657      /**
4658       * <code>optional .ComponentType type = 4;</code>
4659       */
4660      public Builder setType(org.sonar.batch.protocol.Constants.ComponentType value) {
4661        if (value == null) {
4662          throw new NullPointerException();
4663        }
4664        bitField0_ |= 0x00000008;
4665        type_ = value.getNumber();
4666        onChanged();
4667        return this;
4668      }
4669      /**
4670       * <code>optional .ComponentType type = 4;</code>
4671       */
4672      public Builder clearType() {
4673        bitField0_ = (bitField0_ & ~0x00000008);
4674        type_ = 0;
4675        onChanged();
4676        return this;
4677      }
4678
4679      private boolean isTest_ ;
4680      /**
4681       * <code>optional bool is_test = 5;</code>
4682       */
4683      public boolean hasIsTest() {
4684        return ((bitField0_ & 0x00000010) == 0x00000010);
4685      }
4686      /**
4687       * <code>optional bool is_test = 5;</code>
4688       */
4689      public boolean getIsTest() {
4690        return isTest_;
4691      }
4692      /**
4693       * <code>optional bool is_test = 5;</code>
4694       */
4695      public Builder setIsTest(boolean value) {
4696        bitField0_ |= 0x00000010;
4697        isTest_ = value;
4698        onChanged();
4699        return this;
4700      }
4701      /**
4702       * <code>optional bool is_test = 5;</code>
4703       */
4704      public Builder clearIsTest() {
4705        bitField0_ = (bitField0_ & ~0x00000010);
4706        isTest_ = false;
4707        onChanged();
4708        return this;
4709      }
4710
4711      private java.lang.Object language_ = "";
4712      /**
4713       * <code>optional string language = 6;</code>
4714       */
4715      public boolean hasLanguage() {
4716        return ((bitField0_ & 0x00000020) == 0x00000020);
4717      }
4718      /**
4719       * <code>optional string language = 6;</code>
4720       */
4721      public java.lang.String getLanguage() {
4722        java.lang.Object ref = language_;
4723        if (!(ref instanceof java.lang.String)) {
4724          com.google.protobuf.ByteString bs =
4725              (com.google.protobuf.ByteString) ref;
4726          java.lang.String s = bs.toStringUtf8();
4727          if (bs.isValidUtf8()) {
4728            language_ = s;
4729          }
4730          return s;
4731        } else {
4732          return (java.lang.String) ref;
4733        }
4734      }
4735      /**
4736       * <code>optional string language = 6;</code>
4737       */
4738      public com.google.protobuf.ByteString
4739          getLanguageBytes() {
4740        java.lang.Object ref = language_;
4741        if (ref instanceof String) {
4742          com.google.protobuf.ByteString b = 
4743              com.google.protobuf.ByteString.copyFromUtf8(
4744                  (java.lang.String) ref);
4745          language_ = b;
4746          return b;
4747        } else {
4748          return (com.google.protobuf.ByteString) ref;
4749        }
4750      }
4751      /**
4752       * <code>optional string language = 6;</code>
4753       */
4754      public Builder setLanguage(
4755          java.lang.String value) {
4756        if (value == null) {
4757    throw new NullPointerException();
4758  }
4759  bitField0_ |= 0x00000020;
4760        language_ = value;
4761        onChanged();
4762        return this;
4763      }
4764      /**
4765       * <code>optional string language = 6;</code>
4766       */
4767      public Builder clearLanguage() {
4768        bitField0_ = (bitField0_ & ~0x00000020);
4769        language_ = getDefaultInstance().getLanguage();
4770        onChanged();
4771        return this;
4772      }
4773      /**
4774       * <code>optional string language = 6;</code>
4775       */
4776      public Builder setLanguageBytes(
4777          com.google.protobuf.ByteString value) {
4778        if (value == null) {
4779    throw new NullPointerException();
4780  }
4781  bitField0_ |= 0x00000020;
4782        language_ = value;
4783        onChanged();
4784        return this;
4785      }
4786
4787      private java.util.List<java.lang.Integer> childRef_ = java.util.Collections.emptyList();
4788      private void ensureChildRefIsMutable() {
4789        if (!((bitField0_ & 0x00000040) == 0x00000040)) {
4790          childRef_ = new java.util.ArrayList<java.lang.Integer>(childRef_);
4791          bitField0_ |= 0x00000040;
4792         }
4793      }
4794      /**
4795       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4796       */
4797      public java.util.List<java.lang.Integer>
4798          getChildRefList() {
4799        return java.util.Collections.unmodifiableList(childRef_);
4800      }
4801      /**
4802       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4803       */
4804      public int getChildRefCount() {
4805        return childRef_.size();
4806      }
4807      /**
4808       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4809       */
4810      public int getChildRef(int index) {
4811        return childRef_.get(index);
4812      }
4813      /**
4814       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4815       */
4816      public Builder setChildRef(
4817          int index, int value) {
4818        ensureChildRefIsMutable();
4819        childRef_.set(index, value);
4820        onChanged();
4821        return this;
4822      }
4823      /**
4824       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4825       */
4826      public Builder addChildRef(int value) {
4827        ensureChildRefIsMutable();
4828        childRef_.add(value);
4829        onChanged();
4830        return this;
4831      }
4832      /**
4833       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4834       */
4835      public Builder addAllChildRef(
4836          java.lang.Iterable<? extends java.lang.Integer> values) {
4837        ensureChildRefIsMutable();
4838        com.google.protobuf.AbstractMessageLite.Builder.addAll(
4839            values, childRef_);
4840        onChanged();
4841        return this;
4842      }
4843      /**
4844       * <code>repeated int32 child_ref = 7 [packed = true];</code>
4845       */
4846      public Builder clearChildRef() {
4847        childRef_ = java.util.Collections.emptyList();
4848        bitField0_ = (bitField0_ & ~0x00000040);
4849        onChanged();
4850        return this;
4851      }
4852
4853      private java.util.List<org.sonar.batch.protocol.output.BatchReport.ComponentLink> link_ =
4854        java.util.Collections.emptyList();
4855      private void ensureLinkIsMutable() {
4856        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
4857          link_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.ComponentLink>(link_);
4858          bitField0_ |= 0x00000080;
4859         }
4860      }
4861
4862      private com.google.protobuf.RepeatedFieldBuilder<
4863          org.sonar.batch.protocol.output.BatchReport.ComponentLink, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder, org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder> linkBuilder_;
4864
4865      /**
4866       * <code>repeated .ComponentLink link = 8;</code>
4867       */
4868      public java.util.List<org.sonar.batch.protocol.output.BatchReport.ComponentLink> getLinkList() {
4869        if (linkBuilder_ == null) {
4870          return java.util.Collections.unmodifiableList(link_);
4871        } else {
4872          return linkBuilder_.getMessageList();
4873        }
4874      }
4875      /**
4876       * <code>repeated .ComponentLink link = 8;</code>
4877       */
4878      public int getLinkCount() {
4879        if (linkBuilder_ == null) {
4880          return link_.size();
4881        } else {
4882          return linkBuilder_.getCount();
4883        }
4884      }
4885      /**
4886       * <code>repeated .ComponentLink link = 8;</code>
4887       */
4888      public org.sonar.batch.protocol.output.BatchReport.ComponentLink getLink(int index) {
4889        if (linkBuilder_ == null) {
4890          return link_.get(index);
4891        } else {
4892          return linkBuilder_.getMessage(index);
4893        }
4894      }
4895      /**
4896       * <code>repeated .ComponentLink link = 8;</code>
4897       */
4898      public Builder setLink(
4899          int index, org.sonar.batch.protocol.output.BatchReport.ComponentLink value) {
4900        if (linkBuilder_ == null) {
4901          if (value == null) {
4902            throw new NullPointerException();
4903          }
4904          ensureLinkIsMutable();
4905          link_.set(index, value);
4906          onChanged();
4907        } else {
4908          linkBuilder_.setMessage(index, value);
4909        }
4910        return this;
4911      }
4912      /**
4913       * <code>repeated .ComponentLink link = 8;</code>
4914       */
4915      public Builder setLink(
4916          int index, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder builderForValue) {
4917        if (linkBuilder_ == null) {
4918          ensureLinkIsMutable();
4919          link_.set(index, builderForValue.build());
4920          onChanged();
4921        } else {
4922          linkBuilder_.setMessage(index, builderForValue.build());
4923        }
4924        return this;
4925      }
4926      /**
4927       * <code>repeated .ComponentLink link = 8;</code>
4928       */
4929      public Builder addLink(org.sonar.batch.protocol.output.BatchReport.ComponentLink value) {
4930        if (linkBuilder_ == null) {
4931          if (value == null) {
4932            throw new NullPointerException();
4933          }
4934          ensureLinkIsMutable();
4935          link_.add(value);
4936          onChanged();
4937        } else {
4938          linkBuilder_.addMessage(value);
4939        }
4940        return this;
4941      }
4942      /**
4943       * <code>repeated .ComponentLink link = 8;</code>
4944       */
4945      public Builder addLink(
4946          int index, org.sonar.batch.protocol.output.BatchReport.ComponentLink value) {
4947        if (linkBuilder_ == null) {
4948          if (value == null) {
4949            throw new NullPointerException();
4950          }
4951          ensureLinkIsMutable();
4952          link_.add(index, value);
4953          onChanged();
4954        } else {
4955          linkBuilder_.addMessage(index, value);
4956        }
4957        return this;
4958      }
4959      /**
4960       * <code>repeated .ComponentLink link = 8;</code>
4961       */
4962      public Builder addLink(
4963          org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder builderForValue) {
4964        if (linkBuilder_ == null) {
4965          ensureLinkIsMutable();
4966          link_.add(builderForValue.build());
4967          onChanged();
4968        } else {
4969          linkBuilder_.addMessage(builderForValue.build());
4970        }
4971        return this;
4972      }
4973      /**
4974       * <code>repeated .ComponentLink link = 8;</code>
4975       */
4976      public Builder addLink(
4977          int index, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder builderForValue) {
4978        if (linkBuilder_ == null) {
4979          ensureLinkIsMutable();
4980          link_.add(index, builderForValue.build());
4981          onChanged();
4982        } else {
4983          linkBuilder_.addMessage(index, builderForValue.build());
4984        }
4985        return this;
4986      }
4987      /**
4988       * <code>repeated .ComponentLink link = 8;</code>
4989       */
4990      public Builder addAllLink(
4991          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.ComponentLink> values) {
4992        if (linkBuilder_ == null) {
4993          ensureLinkIsMutable();
4994          com.google.protobuf.AbstractMessageLite.Builder.addAll(
4995              values, link_);
4996          onChanged();
4997        } else {
4998          linkBuilder_.addAllMessages(values);
4999        }
5000        return this;
5001      }
5002      /**
5003       * <code>repeated .ComponentLink link = 8;</code>
5004       */
5005      public Builder clearLink() {
5006        if (linkBuilder_ == null) {
5007          link_ = java.util.Collections.emptyList();
5008          bitField0_ = (bitField0_ & ~0x00000080);
5009          onChanged();
5010        } else {
5011          linkBuilder_.clear();
5012        }
5013        return this;
5014      }
5015      /**
5016       * <code>repeated .ComponentLink link = 8;</code>
5017       */
5018      public Builder removeLink(int index) {
5019        if (linkBuilder_ == null) {
5020          ensureLinkIsMutable();
5021          link_.remove(index);
5022          onChanged();
5023        } else {
5024          linkBuilder_.remove(index);
5025        }
5026        return this;
5027      }
5028      /**
5029       * <code>repeated .ComponentLink link = 8;</code>
5030       */
5031      public org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder getLinkBuilder(
5032          int index) {
5033        return getLinkFieldBuilder().getBuilder(index);
5034      }
5035      /**
5036       * <code>repeated .ComponentLink link = 8;</code>
5037       */
5038      public org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder getLinkOrBuilder(
5039          int index) {
5040        if (linkBuilder_ == null) {
5041          return link_.get(index);  } else {
5042          return linkBuilder_.getMessageOrBuilder(index);
5043        }
5044      }
5045      /**
5046       * <code>repeated .ComponentLink link = 8;</code>
5047       */
5048      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder> 
5049           getLinkOrBuilderList() {
5050        if (linkBuilder_ != null) {
5051          return linkBuilder_.getMessageOrBuilderList();
5052        } else {
5053          return java.util.Collections.unmodifiableList(link_);
5054        }
5055      }
5056      /**
5057       * <code>repeated .ComponentLink link = 8;</code>
5058       */
5059      public org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder addLinkBuilder() {
5060        return getLinkFieldBuilder().addBuilder(
5061            org.sonar.batch.protocol.output.BatchReport.ComponentLink.getDefaultInstance());
5062      }
5063      /**
5064       * <code>repeated .ComponentLink link = 8;</code>
5065       */
5066      public org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder addLinkBuilder(
5067          int index) {
5068        return getLinkFieldBuilder().addBuilder(
5069            index, org.sonar.batch.protocol.output.BatchReport.ComponentLink.getDefaultInstance());
5070      }
5071      /**
5072       * <code>repeated .ComponentLink link = 8;</code>
5073       */
5074      public java.util.List<org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder> 
5075           getLinkBuilderList() {
5076        return getLinkFieldBuilder().getBuilderList();
5077      }
5078      private com.google.protobuf.RepeatedFieldBuilder<
5079          org.sonar.batch.protocol.output.BatchReport.ComponentLink, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder, org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder> 
5080          getLinkFieldBuilder() {
5081        if (linkBuilder_ == null) {
5082          linkBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
5083              org.sonar.batch.protocol.output.BatchReport.ComponentLink, org.sonar.batch.protocol.output.BatchReport.ComponentLink.Builder, org.sonar.batch.protocol.output.BatchReport.ComponentLinkOrBuilder>(
5084                  link_,
5085                  ((bitField0_ & 0x00000080) == 0x00000080),
5086                  getParentForChildren(),
5087                  isClean());
5088          link_ = null;
5089        }
5090        return linkBuilder_;
5091      }
5092
5093      private java.lang.Object version_ = "";
5094      /**
5095       * <code>optional string version = 9;</code>
5096       *
5097       * <pre>
5098       * Only available on PROJECT and MODULE types
5099       * </pre>
5100       */
5101      public boolean hasVersion() {
5102        return ((bitField0_ & 0x00000100) == 0x00000100);
5103      }
5104      /**
5105       * <code>optional string version = 9;</code>
5106       *
5107       * <pre>
5108       * Only available on PROJECT and MODULE types
5109       * </pre>
5110       */
5111      public java.lang.String getVersion() {
5112        java.lang.Object ref = version_;
5113        if (!(ref instanceof java.lang.String)) {
5114          com.google.protobuf.ByteString bs =
5115              (com.google.protobuf.ByteString) ref;
5116          java.lang.String s = bs.toStringUtf8();
5117          if (bs.isValidUtf8()) {
5118            version_ = s;
5119          }
5120          return s;
5121        } else {
5122          return (java.lang.String) ref;
5123        }
5124      }
5125      /**
5126       * <code>optional string version = 9;</code>
5127       *
5128       * <pre>
5129       * Only available on PROJECT and MODULE types
5130       * </pre>
5131       */
5132      public com.google.protobuf.ByteString
5133          getVersionBytes() {
5134        java.lang.Object ref = version_;
5135        if (ref instanceof String) {
5136          com.google.protobuf.ByteString b = 
5137              com.google.protobuf.ByteString.copyFromUtf8(
5138                  (java.lang.String) ref);
5139          version_ = b;
5140          return b;
5141        } else {
5142          return (com.google.protobuf.ByteString) ref;
5143        }
5144      }
5145      /**
5146       * <code>optional string version = 9;</code>
5147       *
5148       * <pre>
5149       * Only available on PROJECT and MODULE types
5150       * </pre>
5151       */
5152      public Builder setVersion(
5153          java.lang.String value) {
5154        if (value == null) {
5155    throw new NullPointerException();
5156  }
5157  bitField0_ |= 0x00000100;
5158        version_ = value;
5159        onChanged();
5160        return this;
5161      }
5162      /**
5163       * <code>optional string version = 9;</code>
5164       *
5165       * <pre>
5166       * Only available on PROJECT and MODULE types
5167       * </pre>
5168       */
5169      public Builder clearVersion() {
5170        bitField0_ = (bitField0_ & ~0x00000100);
5171        version_ = getDefaultInstance().getVersion();
5172        onChanged();
5173        return this;
5174      }
5175      /**
5176       * <code>optional string version = 9;</code>
5177       *
5178       * <pre>
5179       * Only available on PROJECT and MODULE types
5180       * </pre>
5181       */
5182      public Builder setVersionBytes(
5183          com.google.protobuf.ByteString value) {
5184        if (value == null) {
5185    throw new NullPointerException();
5186  }
5187  bitField0_ |= 0x00000100;
5188        version_ = value;
5189        onChanged();
5190        return this;
5191      }
5192
5193      private java.lang.Object key_ = "";
5194      /**
5195       * <code>optional string key = 10;</code>
5196       *
5197       * <pre>
5198       * Only available on PROJECT and MODULE types
5199       * TODO rename this property -&gt; batchKey ? moduleKey ?
5200       * </pre>
5201       */
5202      public boolean hasKey() {
5203        return ((bitField0_ & 0x00000200) == 0x00000200);
5204      }
5205      /**
5206       * <code>optional string key = 10;</code>
5207       *
5208       * <pre>
5209       * Only available on PROJECT and MODULE types
5210       * TODO rename this property -&gt; batchKey ? moduleKey ?
5211       * </pre>
5212       */
5213      public java.lang.String getKey() {
5214        java.lang.Object ref = key_;
5215        if (!(ref instanceof java.lang.String)) {
5216          com.google.protobuf.ByteString bs =
5217              (com.google.protobuf.ByteString) ref;
5218          java.lang.String s = bs.toStringUtf8();
5219          if (bs.isValidUtf8()) {
5220            key_ = s;
5221          }
5222          return s;
5223        } else {
5224          return (java.lang.String) ref;
5225        }
5226      }
5227      /**
5228       * <code>optional string key = 10;</code>
5229       *
5230       * <pre>
5231       * Only available on PROJECT and MODULE types
5232       * TODO rename this property -&gt; batchKey ? moduleKey ?
5233       * </pre>
5234       */
5235      public com.google.protobuf.ByteString
5236          getKeyBytes() {
5237        java.lang.Object ref = key_;
5238        if (ref instanceof String) {
5239          com.google.protobuf.ByteString b = 
5240              com.google.protobuf.ByteString.copyFromUtf8(
5241                  (java.lang.String) ref);
5242          key_ = b;
5243          return b;
5244        } else {
5245          return (com.google.protobuf.ByteString) ref;
5246        }
5247      }
5248      /**
5249       * <code>optional string key = 10;</code>
5250       *
5251       * <pre>
5252       * Only available on PROJECT and MODULE types
5253       * TODO rename this property -&gt; batchKey ? moduleKey ?
5254       * </pre>
5255       */
5256      public Builder setKey(
5257          java.lang.String value) {
5258        if (value == null) {
5259    throw new NullPointerException();
5260  }
5261  bitField0_ |= 0x00000200;
5262        key_ = value;
5263        onChanged();
5264        return this;
5265      }
5266      /**
5267       * <code>optional string key = 10;</code>
5268       *
5269       * <pre>
5270       * Only available on PROJECT and MODULE types
5271       * TODO rename this property -&gt; batchKey ? moduleKey ?
5272       * </pre>
5273       */
5274      public Builder clearKey() {
5275        bitField0_ = (bitField0_ & ~0x00000200);
5276        key_ = getDefaultInstance().getKey();
5277        onChanged();
5278        return this;
5279      }
5280      /**
5281       * <code>optional string key = 10;</code>
5282       *
5283       * <pre>
5284       * Only available on PROJECT and MODULE types
5285       * TODO rename this property -&gt; batchKey ? moduleKey ?
5286       * </pre>
5287       */
5288      public Builder setKeyBytes(
5289          com.google.protobuf.ByteString value) {
5290        if (value == null) {
5291    throw new NullPointerException();
5292  }
5293  bitField0_ |= 0x00000200;
5294        key_ = value;
5295        onChanged();
5296        return this;
5297      }
5298
5299      private int lines_ ;
5300      /**
5301       * <code>optional int32 lines = 11;</code>
5302       *
5303       * <pre>
5304       * Only available on FILE type
5305       * </pre>
5306       */
5307      public boolean hasLines() {
5308        return ((bitField0_ & 0x00000400) == 0x00000400);
5309      }
5310      /**
5311       * <code>optional int32 lines = 11;</code>
5312       *
5313       * <pre>
5314       * Only available on FILE type
5315       * </pre>
5316       */
5317      public int getLines() {
5318        return lines_;
5319      }
5320      /**
5321       * <code>optional int32 lines = 11;</code>
5322       *
5323       * <pre>
5324       * Only available on FILE type
5325       * </pre>
5326       */
5327      public Builder setLines(int value) {
5328        bitField0_ |= 0x00000400;
5329        lines_ = value;
5330        onChanged();
5331        return this;
5332      }
5333      /**
5334       * <code>optional int32 lines = 11;</code>
5335       *
5336       * <pre>
5337       * Only available on FILE type
5338       * </pre>
5339       */
5340      public Builder clearLines() {
5341        bitField0_ = (bitField0_ & ~0x00000400);
5342        lines_ = 0;
5343        onChanged();
5344        return this;
5345      }
5346
5347      private java.lang.Object description_ = "";
5348      /**
5349       * <code>optional string description = 12;</code>
5350       *
5351       * <pre>
5352       * Only available on PROJECT and MODULE types
5353       * </pre>
5354       */
5355      public boolean hasDescription() {
5356        return ((bitField0_ & 0x00000800) == 0x00000800);
5357      }
5358      /**
5359       * <code>optional string description = 12;</code>
5360       *
5361       * <pre>
5362       * Only available on PROJECT and MODULE types
5363       * </pre>
5364       */
5365      public java.lang.String getDescription() {
5366        java.lang.Object ref = description_;
5367        if (!(ref instanceof java.lang.String)) {
5368          com.google.protobuf.ByteString bs =
5369              (com.google.protobuf.ByteString) ref;
5370          java.lang.String s = bs.toStringUtf8();
5371          if (bs.isValidUtf8()) {
5372            description_ = s;
5373          }
5374          return s;
5375        } else {
5376          return (java.lang.String) ref;
5377        }
5378      }
5379      /**
5380       * <code>optional string description = 12;</code>
5381       *
5382       * <pre>
5383       * Only available on PROJECT and MODULE types
5384       * </pre>
5385       */
5386      public com.google.protobuf.ByteString
5387          getDescriptionBytes() {
5388        java.lang.Object ref = description_;
5389        if (ref instanceof String) {
5390          com.google.protobuf.ByteString b = 
5391              com.google.protobuf.ByteString.copyFromUtf8(
5392                  (java.lang.String) ref);
5393          description_ = b;
5394          return b;
5395        } else {
5396          return (com.google.protobuf.ByteString) ref;
5397        }
5398      }
5399      /**
5400       * <code>optional string description = 12;</code>
5401       *
5402       * <pre>
5403       * Only available on PROJECT and MODULE types
5404       * </pre>
5405       */
5406      public Builder setDescription(
5407          java.lang.String value) {
5408        if (value == null) {
5409    throw new NullPointerException();
5410  }
5411  bitField0_ |= 0x00000800;
5412        description_ = value;
5413        onChanged();
5414        return this;
5415      }
5416      /**
5417       * <code>optional string description = 12;</code>
5418       *
5419       * <pre>
5420       * Only available on PROJECT and MODULE types
5421       * </pre>
5422       */
5423      public Builder clearDescription() {
5424        bitField0_ = (bitField0_ & ~0x00000800);
5425        description_ = getDefaultInstance().getDescription();
5426        onChanged();
5427        return this;
5428      }
5429      /**
5430       * <code>optional string description = 12;</code>
5431       *
5432       * <pre>
5433       * Only available on PROJECT and MODULE types
5434       * </pre>
5435       */
5436      public Builder setDescriptionBytes(
5437          com.google.protobuf.ByteString value) {
5438        if (value == null) {
5439    throw new NullPointerException();
5440  }
5441  bitField0_ |= 0x00000800;
5442        description_ = value;
5443        onChanged();
5444        return this;
5445      }
5446
5447      // @@protoc_insertion_point(builder_scope:Component)
5448    }
5449
5450    // @@protoc_insertion_point(class_scope:Component)
5451    private static final org.sonar.batch.protocol.output.BatchReport.Component DEFAULT_INSTANCE;
5452    static {
5453      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Component();
5454    }
5455
5456    public static org.sonar.batch.protocol.output.BatchReport.Component getDefaultInstance() {
5457      return DEFAULT_INSTANCE;
5458    }
5459
5460    @java.lang.Deprecated public static final com.google.protobuf.Parser<Component>
5461        PARSER = new com.google.protobuf.AbstractParser<Component>() {
5462      public Component parsePartialFrom(
5463          com.google.protobuf.CodedInputStream input,
5464          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5465          throws com.google.protobuf.InvalidProtocolBufferException {
5466        try {
5467          return new Component(input, extensionRegistry);
5468        } catch (RuntimeException e) {
5469          if (e.getCause() instanceof
5470              com.google.protobuf.InvalidProtocolBufferException) {
5471            throw (com.google.protobuf.InvalidProtocolBufferException)
5472                e.getCause();
5473          }
5474          throw e;
5475        }
5476      }
5477    };
5478
5479    public static com.google.protobuf.Parser<Component> parser() {
5480      return PARSER;
5481    }
5482
5483    @java.lang.Override
5484    public com.google.protobuf.Parser<Component> getParserForType() {
5485      return PARSER;
5486    }
5487
5488    public org.sonar.batch.protocol.output.BatchReport.Component getDefaultInstanceForType() {
5489      return DEFAULT_INSTANCE;
5490    }
5491
5492  }
5493
5494  public interface MeasureOrBuilder extends
5495      // @@protoc_insertion_point(interface_extends:Measure)
5496      com.google.protobuf.MessageOrBuilder {
5497
5498    /**
5499     * <code>optional .MeasureValueType value_type = 1;</code>
5500     */
5501    boolean hasValueType();
5502    /**
5503     * <code>optional .MeasureValueType value_type = 1;</code>
5504     */
5505    org.sonar.batch.protocol.Constants.MeasureValueType getValueType();
5506
5507    /**
5508     * <code>optional bool boolean_value = 2;</code>
5509     *
5510     * <pre>
5511     * all values may be unset for "new_xxx" measures (only variations are populated)
5512     * </pre>
5513     */
5514    boolean hasBooleanValue();
5515    /**
5516     * <code>optional bool boolean_value = 2;</code>
5517     *
5518     * <pre>
5519     * all values may be unset for "new_xxx" measures (only variations are populated)
5520     * </pre>
5521     */
5522    boolean getBooleanValue();
5523
5524    /**
5525     * <code>optional int32 int_value = 3;</code>
5526     */
5527    boolean hasIntValue();
5528    /**
5529     * <code>optional int32 int_value = 3;</code>
5530     */
5531    int getIntValue();
5532
5533    /**
5534     * <code>optional int64 long_value = 4;</code>
5535     */
5536    boolean hasLongValue();
5537    /**
5538     * <code>optional int64 long_value = 4;</code>
5539     */
5540    long getLongValue();
5541
5542    /**
5543     * <code>optional double double_value = 5;</code>
5544     */
5545    boolean hasDoubleValue();
5546    /**
5547     * <code>optional double double_value = 5;</code>
5548     */
5549    double getDoubleValue();
5550
5551    /**
5552     * <code>optional string string_value = 6;</code>
5553     */
5554    boolean hasStringValue();
5555    /**
5556     * <code>optional string string_value = 6;</code>
5557     */
5558    java.lang.String getStringValue();
5559    /**
5560     * <code>optional string string_value = 6;</code>
5561     */
5562    com.google.protobuf.ByteString
5563        getStringValueBytes();
5564
5565    /**
5566     * <code>optional string metric_key = 7;</code>
5567     */
5568    boolean hasMetricKey();
5569    /**
5570     * <code>optional string metric_key = 7;</code>
5571     */
5572    java.lang.String getMetricKey();
5573    /**
5574     * <code>optional string metric_key = 7;</code>
5575     */
5576    com.google.protobuf.ByteString
5577        getMetricKeyBytes();
5578  }
5579  /**
5580   * Protobuf type {@code Measure}
5581   */
5582  public  static final class Measure extends
5583      com.google.protobuf.GeneratedMessage implements
5584      // @@protoc_insertion_point(message_implements:Measure)
5585      MeasureOrBuilder {
5586    // Use Measure.newBuilder() to construct.
5587    private Measure(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
5588      super(builder);
5589    }
5590    private Measure() {
5591      valueType_ = 0;
5592      booleanValue_ = false;
5593      intValue_ = 0;
5594      longValue_ = 0L;
5595      doubleValue_ = 0D;
5596      stringValue_ = "";
5597      metricKey_ = "";
5598    }
5599
5600    @java.lang.Override
5601    public final com.google.protobuf.UnknownFieldSet
5602    getUnknownFields() {
5603      return this.unknownFields;
5604    }
5605    private Measure(
5606        com.google.protobuf.CodedInputStream input,
5607        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
5608      this();
5609      int mutable_bitField0_ = 0;
5610      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
5611          com.google.protobuf.UnknownFieldSet.newBuilder();
5612      try {
5613        boolean done = false;
5614        while (!done) {
5615          int tag = input.readTag();
5616          switch (tag) {
5617            case 0:
5618              done = true;
5619              break;
5620            default: {
5621              if (!parseUnknownField(input, unknownFields,
5622                                     extensionRegistry, tag)) {
5623                done = true;
5624              }
5625              break;
5626            }
5627            case 8: {
5628              int rawValue = input.readEnum();
5629              org.sonar.batch.protocol.Constants.MeasureValueType value = org.sonar.batch.protocol.Constants.MeasureValueType.valueOf(rawValue);
5630              if (value == null) {
5631                unknownFields.mergeVarintField(1, rawValue);
5632              } else {
5633                bitField0_ |= 0x00000001;
5634                valueType_ = rawValue;
5635              }
5636              break;
5637            }
5638            case 16: {
5639              bitField0_ |= 0x00000002;
5640              booleanValue_ = input.readBool();
5641              break;
5642            }
5643            case 24: {
5644              bitField0_ |= 0x00000004;
5645              intValue_ = input.readInt32();
5646              break;
5647            }
5648            case 32: {
5649              bitField0_ |= 0x00000008;
5650              longValue_ = input.readInt64();
5651              break;
5652            }
5653            case 41: {
5654              bitField0_ |= 0x00000010;
5655              doubleValue_ = input.readDouble();
5656              break;
5657            }
5658            case 50: {
5659              com.google.protobuf.ByteString bs = input.readBytes();
5660              bitField0_ |= 0x00000020;
5661              stringValue_ = bs;
5662              break;
5663            }
5664            case 58: {
5665              com.google.protobuf.ByteString bs = input.readBytes();
5666              bitField0_ |= 0x00000040;
5667              metricKey_ = bs;
5668              break;
5669            }
5670          }
5671        }
5672      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
5673        throw new RuntimeException(e.setUnfinishedMessage(this));
5674      } catch (java.io.IOException e) {
5675        throw new RuntimeException(
5676            new com.google.protobuf.InvalidProtocolBufferException(
5677                e.getMessage()).setUnfinishedMessage(this));
5678      } finally {
5679        this.unknownFields = unknownFields.build();
5680        makeExtensionsImmutable();
5681      }
5682    }
5683    public static final com.google.protobuf.Descriptors.Descriptor
5684        getDescriptor() {
5685      return org.sonar.batch.protocol.output.BatchReport.internal_static_Measure_descriptor;
5686    }
5687
5688    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
5689        internalGetFieldAccessorTable() {
5690      return org.sonar.batch.protocol.output.BatchReport.internal_static_Measure_fieldAccessorTable
5691          .ensureFieldAccessorsInitialized(
5692              org.sonar.batch.protocol.output.BatchReport.Measure.class, org.sonar.batch.protocol.output.BatchReport.Measure.Builder.class);
5693    }
5694
5695    private int bitField0_;
5696    public static final int VALUE_TYPE_FIELD_NUMBER = 1;
5697    private int valueType_;
5698    /**
5699     * <code>optional .MeasureValueType value_type = 1;</code>
5700     */
5701    public boolean hasValueType() {
5702      return ((bitField0_ & 0x00000001) == 0x00000001);
5703    }
5704    /**
5705     * <code>optional .MeasureValueType value_type = 1;</code>
5706     */
5707    public org.sonar.batch.protocol.Constants.MeasureValueType getValueType() {
5708      org.sonar.batch.protocol.Constants.MeasureValueType result = org.sonar.batch.protocol.Constants.MeasureValueType.valueOf(valueType_);
5709      return result == null ? org.sonar.batch.protocol.Constants.MeasureValueType.INT : result;
5710    }
5711
5712    public static final int BOOLEAN_VALUE_FIELD_NUMBER = 2;
5713    private boolean booleanValue_;
5714    /**
5715     * <code>optional bool boolean_value = 2;</code>
5716     *
5717     * <pre>
5718     * all values may be unset for "new_xxx" measures (only variations are populated)
5719     * </pre>
5720     */
5721    public boolean hasBooleanValue() {
5722      return ((bitField0_ & 0x00000002) == 0x00000002);
5723    }
5724    /**
5725     * <code>optional bool boolean_value = 2;</code>
5726     *
5727     * <pre>
5728     * all values may be unset for "new_xxx" measures (only variations are populated)
5729     * </pre>
5730     */
5731    public boolean getBooleanValue() {
5732      return booleanValue_;
5733    }
5734
5735    public static final int INT_VALUE_FIELD_NUMBER = 3;
5736    private int intValue_;
5737    /**
5738     * <code>optional int32 int_value = 3;</code>
5739     */
5740    public boolean hasIntValue() {
5741      return ((bitField0_ & 0x00000004) == 0x00000004);
5742    }
5743    /**
5744     * <code>optional int32 int_value = 3;</code>
5745     */
5746    public int getIntValue() {
5747      return intValue_;
5748    }
5749
5750    public static final int LONG_VALUE_FIELD_NUMBER = 4;
5751    private long longValue_;
5752    /**
5753     * <code>optional int64 long_value = 4;</code>
5754     */
5755    public boolean hasLongValue() {
5756      return ((bitField0_ & 0x00000008) == 0x00000008);
5757    }
5758    /**
5759     * <code>optional int64 long_value = 4;</code>
5760     */
5761    public long getLongValue() {
5762      return longValue_;
5763    }
5764
5765    public static final int DOUBLE_VALUE_FIELD_NUMBER = 5;
5766    private double doubleValue_;
5767    /**
5768     * <code>optional double double_value = 5;</code>
5769     */
5770    public boolean hasDoubleValue() {
5771      return ((bitField0_ & 0x00000010) == 0x00000010);
5772    }
5773    /**
5774     * <code>optional double double_value = 5;</code>
5775     */
5776    public double getDoubleValue() {
5777      return doubleValue_;
5778    }
5779
5780    public static final int STRING_VALUE_FIELD_NUMBER = 6;
5781    private volatile java.lang.Object stringValue_;
5782    /**
5783     * <code>optional string string_value = 6;</code>
5784     */
5785    public boolean hasStringValue() {
5786      return ((bitField0_ & 0x00000020) == 0x00000020);
5787    }
5788    /**
5789     * <code>optional string string_value = 6;</code>
5790     */
5791    public java.lang.String getStringValue() {
5792      java.lang.Object ref = stringValue_;
5793      if (ref instanceof java.lang.String) {
5794        return (java.lang.String) ref;
5795      } else {
5796        com.google.protobuf.ByteString bs = 
5797            (com.google.protobuf.ByteString) ref;
5798        java.lang.String s = bs.toStringUtf8();
5799        if (bs.isValidUtf8()) {
5800          stringValue_ = s;
5801        }
5802        return s;
5803      }
5804    }
5805    /**
5806     * <code>optional string string_value = 6;</code>
5807     */
5808    public com.google.protobuf.ByteString
5809        getStringValueBytes() {
5810      java.lang.Object ref = stringValue_;
5811      if (ref instanceof java.lang.String) {
5812        com.google.protobuf.ByteString b = 
5813            com.google.protobuf.ByteString.copyFromUtf8(
5814                (java.lang.String) ref);
5815        stringValue_ = b;
5816        return b;
5817      } else {
5818        return (com.google.protobuf.ByteString) ref;
5819      }
5820    }
5821
5822    public static final int METRIC_KEY_FIELD_NUMBER = 7;
5823    private volatile java.lang.Object metricKey_;
5824    /**
5825     * <code>optional string metric_key = 7;</code>
5826     */
5827    public boolean hasMetricKey() {
5828      return ((bitField0_ & 0x00000040) == 0x00000040);
5829    }
5830    /**
5831     * <code>optional string metric_key = 7;</code>
5832     */
5833    public java.lang.String getMetricKey() {
5834      java.lang.Object ref = metricKey_;
5835      if (ref instanceof java.lang.String) {
5836        return (java.lang.String) ref;
5837      } else {
5838        com.google.protobuf.ByteString bs = 
5839            (com.google.protobuf.ByteString) ref;
5840        java.lang.String s = bs.toStringUtf8();
5841        if (bs.isValidUtf8()) {
5842          metricKey_ = s;
5843        }
5844        return s;
5845      }
5846    }
5847    /**
5848     * <code>optional string metric_key = 7;</code>
5849     */
5850    public com.google.protobuf.ByteString
5851        getMetricKeyBytes() {
5852      java.lang.Object ref = metricKey_;
5853      if (ref instanceof java.lang.String) {
5854        com.google.protobuf.ByteString b = 
5855            com.google.protobuf.ByteString.copyFromUtf8(
5856                (java.lang.String) ref);
5857        metricKey_ = b;
5858        return b;
5859      } else {
5860        return (com.google.protobuf.ByteString) ref;
5861      }
5862    }
5863
5864    private byte memoizedIsInitialized = -1;
5865    public final boolean isInitialized() {
5866      byte isInitialized = memoizedIsInitialized;
5867      if (isInitialized == 1) return true;
5868      if (isInitialized == 0) return false;
5869
5870      memoizedIsInitialized = 1;
5871      return true;
5872    }
5873
5874    public void writeTo(com.google.protobuf.CodedOutputStream output)
5875                        throws java.io.IOException {
5876      if (((bitField0_ & 0x00000001) == 0x00000001)) {
5877        output.writeEnum(1, valueType_);
5878      }
5879      if (((bitField0_ & 0x00000002) == 0x00000002)) {
5880        output.writeBool(2, booleanValue_);
5881      }
5882      if (((bitField0_ & 0x00000004) == 0x00000004)) {
5883        output.writeInt32(3, intValue_);
5884      }
5885      if (((bitField0_ & 0x00000008) == 0x00000008)) {
5886        output.writeInt64(4, longValue_);
5887      }
5888      if (((bitField0_ & 0x00000010) == 0x00000010)) {
5889        output.writeDouble(5, doubleValue_);
5890      }
5891      if (((bitField0_ & 0x00000020) == 0x00000020)) {
5892        com.google.protobuf.GeneratedMessage.writeString(output, 6, stringValue_);
5893      }
5894      if (((bitField0_ & 0x00000040) == 0x00000040)) {
5895        com.google.protobuf.GeneratedMessage.writeString(output, 7, metricKey_);
5896      }
5897      unknownFields.writeTo(output);
5898    }
5899
5900    public int getSerializedSize() {
5901      int size = memoizedSize;
5902      if (size != -1) return size;
5903
5904      size = 0;
5905      if (((bitField0_ & 0x00000001) == 0x00000001)) {
5906        size += com.google.protobuf.CodedOutputStream
5907          .computeEnumSize(1, valueType_);
5908      }
5909      if (((bitField0_ & 0x00000002) == 0x00000002)) {
5910        size += com.google.protobuf.CodedOutputStream
5911          .computeBoolSize(2, booleanValue_);
5912      }
5913      if (((bitField0_ & 0x00000004) == 0x00000004)) {
5914        size += com.google.protobuf.CodedOutputStream
5915          .computeInt32Size(3, intValue_);
5916      }
5917      if (((bitField0_ & 0x00000008) == 0x00000008)) {
5918        size += com.google.protobuf.CodedOutputStream
5919          .computeInt64Size(4, longValue_);
5920      }
5921      if (((bitField0_ & 0x00000010) == 0x00000010)) {
5922        size += com.google.protobuf.CodedOutputStream
5923          .computeDoubleSize(5, doubleValue_);
5924      }
5925      if (((bitField0_ & 0x00000020) == 0x00000020)) {
5926        size += com.google.protobuf.GeneratedMessage.computeStringSize(6, stringValue_);
5927      }
5928      if (((bitField0_ & 0x00000040) == 0x00000040)) {
5929        size += com.google.protobuf.GeneratedMessage.computeStringSize(7, metricKey_);
5930      }
5931      size += unknownFields.getSerializedSize();
5932      memoizedSize = size;
5933      return size;
5934    }
5935
5936    private static final long serialVersionUID = 0L;
5937    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(
5938        com.google.protobuf.ByteString data)
5939        throws com.google.protobuf.InvalidProtocolBufferException {
5940      return PARSER.parseFrom(data);
5941    }
5942    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(
5943        com.google.protobuf.ByteString data,
5944        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5945        throws com.google.protobuf.InvalidProtocolBufferException {
5946      return PARSER.parseFrom(data, extensionRegistry);
5947    }
5948    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(byte[] data)
5949        throws com.google.protobuf.InvalidProtocolBufferException {
5950      return PARSER.parseFrom(data);
5951    }
5952    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(
5953        byte[] data,
5954        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5955        throws com.google.protobuf.InvalidProtocolBufferException {
5956      return PARSER.parseFrom(data, extensionRegistry);
5957    }
5958    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(java.io.InputStream input)
5959        throws java.io.IOException {
5960      return PARSER.parseFrom(input);
5961    }
5962    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(
5963        java.io.InputStream input,
5964        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5965        throws java.io.IOException {
5966      return PARSER.parseFrom(input, extensionRegistry);
5967    }
5968    public static org.sonar.batch.protocol.output.BatchReport.Measure parseDelimitedFrom(java.io.InputStream input)
5969        throws java.io.IOException {
5970      return PARSER.parseDelimitedFrom(input);
5971    }
5972    public static org.sonar.batch.protocol.output.BatchReport.Measure parseDelimitedFrom(
5973        java.io.InputStream input,
5974        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5975        throws java.io.IOException {
5976      return PARSER.parseDelimitedFrom(input, extensionRegistry);
5977    }
5978    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(
5979        com.google.protobuf.CodedInputStream input)
5980        throws java.io.IOException {
5981      return PARSER.parseFrom(input);
5982    }
5983    public static org.sonar.batch.protocol.output.BatchReport.Measure parseFrom(
5984        com.google.protobuf.CodedInputStream input,
5985        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
5986        throws java.io.IOException {
5987      return PARSER.parseFrom(input, extensionRegistry);
5988    }
5989
5990    public Builder newBuilderForType() { return newBuilder(); }
5991    public static Builder newBuilder() {
5992      return DEFAULT_INSTANCE.toBuilder();
5993    }
5994    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Measure prototype) {
5995      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
5996    }
5997    public Builder toBuilder() {
5998      return this == DEFAULT_INSTANCE
5999          ? new Builder() : new Builder().mergeFrom(this);
6000    }
6001
6002    @java.lang.Override
6003    protected Builder newBuilderForType(
6004        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
6005      Builder builder = new Builder(parent);
6006      return builder;
6007    }
6008    /**
6009     * Protobuf type {@code Measure}
6010     */
6011    public static final class Builder extends
6012        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
6013        // @@protoc_insertion_point(builder_implements:Measure)
6014        org.sonar.batch.protocol.output.BatchReport.MeasureOrBuilder {
6015      public static final com.google.protobuf.Descriptors.Descriptor
6016          getDescriptor() {
6017        return org.sonar.batch.protocol.output.BatchReport.internal_static_Measure_descriptor;
6018      }
6019
6020      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
6021          internalGetFieldAccessorTable() {
6022        return org.sonar.batch.protocol.output.BatchReport.internal_static_Measure_fieldAccessorTable
6023            .ensureFieldAccessorsInitialized(
6024                org.sonar.batch.protocol.output.BatchReport.Measure.class, org.sonar.batch.protocol.output.BatchReport.Measure.Builder.class);
6025      }
6026
6027      // Construct using org.sonar.batch.protocol.output.BatchReport.Measure.newBuilder()
6028      private Builder() {
6029        maybeForceBuilderInitialization();
6030      }
6031
6032      private Builder(
6033          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
6034        super(parent);
6035        maybeForceBuilderInitialization();
6036      }
6037      private void maybeForceBuilderInitialization() {
6038        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
6039        }
6040      }
6041      public Builder clear() {
6042        super.clear();
6043        valueType_ = 0;
6044        bitField0_ = (bitField0_ & ~0x00000001);
6045        booleanValue_ = false;
6046        bitField0_ = (bitField0_ & ~0x00000002);
6047        intValue_ = 0;
6048        bitField0_ = (bitField0_ & ~0x00000004);
6049        longValue_ = 0L;
6050        bitField0_ = (bitField0_ & ~0x00000008);
6051        doubleValue_ = 0D;
6052        bitField0_ = (bitField0_ & ~0x00000010);
6053        stringValue_ = "";
6054        bitField0_ = (bitField0_ & ~0x00000020);
6055        metricKey_ = "";
6056        bitField0_ = (bitField0_ & ~0x00000040);
6057        return this;
6058      }
6059
6060      public com.google.protobuf.Descriptors.Descriptor
6061          getDescriptorForType() {
6062        return org.sonar.batch.protocol.output.BatchReport.internal_static_Measure_descriptor;
6063      }
6064
6065      public org.sonar.batch.protocol.output.BatchReport.Measure getDefaultInstanceForType() {
6066        return org.sonar.batch.protocol.output.BatchReport.Measure.getDefaultInstance();
6067      }
6068
6069      public org.sonar.batch.protocol.output.BatchReport.Measure build() {
6070        org.sonar.batch.protocol.output.BatchReport.Measure result = buildPartial();
6071        if (!result.isInitialized()) {
6072          throw newUninitializedMessageException(result);
6073        }
6074        return result;
6075      }
6076
6077      public org.sonar.batch.protocol.output.BatchReport.Measure buildPartial() {
6078        org.sonar.batch.protocol.output.BatchReport.Measure result = new org.sonar.batch.protocol.output.BatchReport.Measure(this);
6079        int from_bitField0_ = bitField0_;
6080        int to_bitField0_ = 0;
6081        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
6082          to_bitField0_ |= 0x00000001;
6083        }
6084        result.valueType_ = valueType_;
6085        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
6086          to_bitField0_ |= 0x00000002;
6087        }
6088        result.booleanValue_ = booleanValue_;
6089        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
6090          to_bitField0_ |= 0x00000004;
6091        }
6092        result.intValue_ = intValue_;
6093        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
6094          to_bitField0_ |= 0x00000008;
6095        }
6096        result.longValue_ = longValue_;
6097        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
6098          to_bitField0_ |= 0x00000010;
6099        }
6100        result.doubleValue_ = doubleValue_;
6101        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
6102          to_bitField0_ |= 0x00000020;
6103        }
6104        result.stringValue_ = stringValue_;
6105        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
6106          to_bitField0_ |= 0x00000040;
6107        }
6108        result.metricKey_ = metricKey_;
6109        result.bitField0_ = to_bitField0_;
6110        onBuilt();
6111        return result;
6112      }
6113
6114      public Builder mergeFrom(com.google.protobuf.Message other) {
6115        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Measure) {
6116          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Measure)other);
6117        } else {
6118          super.mergeFrom(other);
6119          return this;
6120        }
6121      }
6122
6123      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Measure other) {
6124        if (other == org.sonar.batch.protocol.output.BatchReport.Measure.getDefaultInstance()) return this;
6125        if (other.hasValueType()) {
6126          setValueType(other.getValueType());
6127        }
6128        if (other.hasBooleanValue()) {
6129          setBooleanValue(other.getBooleanValue());
6130        }
6131        if (other.hasIntValue()) {
6132          setIntValue(other.getIntValue());
6133        }
6134        if (other.hasLongValue()) {
6135          setLongValue(other.getLongValue());
6136        }
6137        if (other.hasDoubleValue()) {
6138          setDoubleValue(other.getDoubleValue());
6139        }
6140        if (other.hasStringValue()) {
6141          bitField0_ |= 0x00000020;
6142          stringValue_ = other.stringValue_;
6143          onChanged();
6144        }
6145        if (other.hasMetricKey()) {
6146          bitField0_ |= 0x00000040;
6147          metricKey_ = other.metricKey_;
6148          onChanged();
6149        }
6150        this.mergeUnknownFields(other.unknownFields);
6151        onChanged();
6152        return this;
6153      }
6154
6155      public final boolean isInitialized() {
6156        return true;
6157      }
6158
6159      public Builder mergeFrom(
6160          com.google.protobuf.CodedInputStream input,
6161          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6162          throws java.io.IOException {
6163        org.sonar.batch.protocol.output.BatchReport.Measure parsedMessage = null;
6164        try {
6165          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
6166        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
6167          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Measure) e.getUnfinishedMessage();
6168          throw e;
6169        } finally {
6170          if (parsedMessage != null) {
6171            mergeFrom(parsedMessage);
6172          }
6173        }
6174        return this;
6175      }
6176      private int bitField0_;
6177
6178      private int valueType_ = 0;
6179      /**
6180       * <code>optional .MeasureValueType value_type = 1;</code>
6181       */
6182      public boolean hasValueType() {
6183        return ((bitField0_ & 0x00000001) == 0x00000001);
6184      }
6185      /**
6186       * <code>optional .MeasureValueType value_type = 1;</code>
6187       */
6188      public org.sonar.batch.protocol.Constants.MeasureValueType getValueType() {
6189        org.sonar.batch.protocol.Constants.MeasureValueType result = org.sonar.batch.protocol.Constants.MeasureValueType.valueOf(valueType_);
6190        return result == null ? org.sonar.batch.protocol.Constants.MeasureValueType.INT : result;
6191      }
6192      /**
6193       * <code>optional .MeasureValueType value_type = 1;</code>
6194       */
6195      public Builder setValueType(org.sonar.batch.protocol.Constants.MeasureValueType value) {
6196        if (value == null) {
6197          throw new NullPointerException();
6198        }
6199        bitField0_ |= 0x00000001;
6200        valueType_ = value.getNumber();
6201        onChanged();
6202        return this;
6203      }
6204      /**
6205       * <code>optional .MeasureValueType value_type = 1;</code>
6206       */
6207      public Builder clearValueType() {
6208        bitField0_ = (bitField0_ & ~0x00000001);
6209        valueType_ = 0;
6210        onChanged();
6211        return this;
6212      }
6213
6214      private boolean booleanValue_ ;
6215      /**
6216       * <code>optional bool boolean_value = 2;</code>
6217       *
6218       * <pre>
6219       * all values may be unset for "new_xxx" measures (only variations are populated)
6220       * </pre>
6221       */
6222      public boolean hasBooleanValue() {
6223        return ((bitField0_ & 0x00000002) == 0x00000002);
6224      }
6225      /**
6226       * <code>optional bool boolean_value = 2;</code>
6227       *
6228       * <pre>
6229       * all values may be unset for "new_xxx" measures (only variations are populated)
6230       * </pre>
6231       */
6232      public boolean getBooleanValue() {
6233        return booleanValue_;
6234      }
6235      /**
6236       * <code>optional bool boolean_value = 2;</code>
6237       *
6238       * <pre>
6239       * all values may be unset for "new_xxx" measures (only variations are populated)
6240       * </pre>
6241       */
6242      public Builder setBooleanValue(boolean value) {
6243        bitField0_ |= 0x00000002;
6244        booleanValue_ = value;
6245        onChanged();
6246        return this;
6247      }
6248      /**
6249       * <code>optional bool boolean_value = 2;</code>
6250       *
6251       * <pre>
6252       * all values may be unset for "new_xxx" measures (only variations are populated)
6253       * </pre>
6254       */
6255      public Builder clearBooleanValue() {
6256        bitField0_ = (bitField0_ & ~0x00000002);
6257        booleanValue_ = false;
6258        onChanged();
6259        return this;
6260      }
6261
6262      private int intValue_ ;
6263      /**
6264       * <code>optional int32 int_value = 3;</code>
6265       */
6266      public boolean hasIntValue() {
6267        return ((bitField0_ & 0x00000004) == 0x00000004);
6268      }
6269      /**
6270       * <code>optional int32 int_value = 3;</code>
6271       */
6272      public int getIntValue() {
6273        return intValue_;
6274      }
6275      /**
6276       * <code>optional int32 int_value = 3;</code>
6277       */
6278      public Builder setIntValue(int value) {
6279        bitField0_ |= 0x00000004;
6280        intValue_ = value;
6281        onChanged();
6282        return this;
6283      }
6284      /**
6285       * <code>optional int32 int_value = 3;</code>
6286       */
6287      public Builder clearIntValue() {
6288        bitField0_ = (bitField0_ & ~0x00000004);
6289        intValue_ = 0;
6290        onChanged();
6291        return this;
6292      }
6293
6294      private long longValue_ ;
6295      /**
6296       * <code>optional int64 long_value = 4;</code>
6297       */
6298      public boolean hasLongValue() {
6299        return ((bitField0_ & 0x00000008) == 0x00000008);
6300      }
6301      /**
6302       * <code>optional int64 long_value = 4;</code>
6303       */
6304      public long getLongValue() {
6305        return longValue_;
6306      }
6307      /**
6308       * <code>optional int64 long_value = 4;</code>
6309       */
6310      public Builder setLongValue(long value) {
6311        bitField0_ |= 0x00000008;
6312        longValue_ = value;
6313        onChanged();
6314        return this;
6315      }
6316      /**
6317       * <code>optional int64 long_value = 4;</code>
6318       */
6319      public Builder clearLongValue() {
6320        bitField0_ = (bitField0_ & ~0x00000008);
6321        longValue_ = 0L;
6322        onChanged();
6323        return this;
6324      }
6325
6326      private double doubleValue_ ;
6327      /**
6328       * <code>optional double double_value = 5;</code>
6329       */
6330      public boolean hasDoubleValue() {
6331        return ((bitField0_ & 0x00000010) == 0x00000010);
6332      }
6333      /**
6334       * <code>optional double double_value = 5;</code>
6335       */
6336      public double getDoubleValue() {
6337        return doubleValue_;
6338      }
6339      /**
6340       * <code>optional double double_value = 5;</code>
6341       */
6342      public Builder setDoubleValue(double value) {
6343        bitField0_ |= 0x00000010;
6344        doubleValue_ = value;
6345        onChanged();
6346        return this;
6347      }
6348      /**
6349       * <code>optional double double_value = 5;</code>
6350       */
6351      public Builder clearDoubleValue() {
6352        bitField0_ = (bitField0_ & ~0x00000010);
6353        doubleValue_ = 0D;
6354        onChanged();
6355        return this;
6356      }
6357
6358      private java.lang.Object stringValue_ = "";
6359      /**
6360       * <code>optional string string_value = 6;</code>
6361       */
6362      public boolean hasStringValue() {
6363        return ((bitField0_ & 0x00000020) == 0x00000020);
6364      }
6365      /**
6366       * <code>optional string string_value = 6;</code>
6367       */
6368      public java.lang.String getStringValue() {
6369        java.lang.Object ref = stringValue_;
6370        if (!(ref instanceof java.lang.String)) {
6371          com.google.protobuf.ByteString bs =
6372              (com.google.protobuf.ByteString) ref;
6373          java.lang.String s = bs.toStringUtf8();
6374          if (bs.isValidUtf8()) {
6375            stringValue_ = s;
6376          }
6377          return s;
6378        } else {
6379          return (java.lang.String) ref;
6380        }
6381      }
6382      /**
6383       * <code>optional string string_value = 6;</code>
6384       */
6385      public com.google.protobuf.ByteString
6386          getStringValueBytes() {
6387        java.lang.Object ref = stringValue_;
6388        if (ref instanceof String) {
6389          com.google.protobuf.ByteString b = 
6390              com.google.protobuf.ByteString.copyFromUtf8(
6391                  (java.lang.String) ref);
6392          stringValue_ = b;
6393          return b;
6394        } else {
6395          return (com.google.protobuf.ByteString) ref;
6396        }
6397      }
6398      /**
6399       * <code>optional string string_value = 6;</code>
6400       */
6401      public Builder setStringValue(
6402          java.lang.String value) {
6403        if (value == null) {
6404    throw new NullPointerException();
6405  }
6406  bitField0_ |= 0x00000020;
6407        stringValue_ = value;
6408        onChanged();
6409        return this;
6410      }
6411      /**
6412       * <code>optional string string_value = 6;</code>
6413       */
6414      public Builder clearStringValue() {
6415        bitField0_ = (bitField0_ & ~0x00000020);
6416        stringValue_ = getDefaultInstance().getStringValue();
6417        onChanged();
6418        return this;
6419      }
6420      /**
6421       * <code>optional string string_value = 6;</code>
6422       */
6423      public Builder setStringValueBytes(
6424          com.google.protobuf.ByteString value) {
6425        if (value == null) {
6426    throw new NullPointerException();
6427  }
6428  bitField0_ |= 0x00000020;
6429        stringValue_ = value;
6430        onChanged();
6431        return this;
6432      }
6433
6434      private java.lang.Object metricKey_ = "";
6435      /**
6436       * <code>optional string metric_key = 7;</code>
6437       */
6438      public boolean hasMetricKey() {
6439        return ((bitField0_ & 0x00000040) == 0x00000040);
6440      }
6441      /**
6442       * <code>optional string metric_key = 7;</code>
6443       */
6444      public java.lang.String getMetricKey() {
6445        java.lang.Object ref = metricKey_;
6446        if (!(ref instanceof java.lang.String)) {
6447          com.google.protobuf.ByteString bs =
6448              (com.google.protobuf.ByteString) ref;
6449          java.lang.String s = bs.toStringUtf8();
6450          if (bs.isValidUtf8()) {
6451            metricKey_ = s;
6452          }
6453          return s;
6454        } else {
6455          return (java.lang.String) ref;
6456        }
6457      }
6458      /**
6459       * <code>optional string metric_key = 7;</code>
6460       */
6461      public com.google.protobuf.ByteString
6462          getMetricKeyBytes() {
6463        java.lang.Object ref = metricKey_;
6464        if (ref instanceof String) {
6465          com.google.protobuf.ByteString b = 
6466              com.google.protobuf.ByteString.copyFromUtf8(
6467                  (java.lang.String) ref);
6468          metricKey_ = b;
6469          return b;
6470        } else {
6471          return (com.google.protobuf.ByteString) ref;
6472        }
6473      }
6474      /**
6475       * <code>optional string metric_key = 7;</code>
6476       */
6477      public Builder setMetricKey(
6478          java.lang.String value) {
6479        if (value == null) {
6480    throw new NullPointerException();
6481  }
6482  bitField0_ |= 0x00000040;
6483        metricKey_ = value;
6484        onChanged();
6485        return this;
6486      }
6487      /**
6488       * <code>optional string metric_key = 7;</code>
6489       */
6490      public Builder clearMetricKey() {
6491        bitField0_ = (bitField0_ & ~0x00000040);
6492        metricKey_ = getDefaultInstance().getMetricKey();
6493        onChanged();
6494        return this;
6495      }
6496      /**
6497       * <code>optional string metric_key = 7;</code>
6498       */
6499      public Builder setMetricKeyBytes(
6500          com.google.protobuf.ByteString value) {
6501        if (value == null) {
6502    throw new NullPointerException();
6503  }
6504  bitField0_ |= 0x00000040;
6505        metricKey_ = value;
6506        onChanged();
6507        return this;
6508      }
6509
6510      // @@protoc_insertion_point(builder_scope:Measure)
6511    }
6512
6513    // @@protoc_insertion_point(class_scope:Measure)
6514    private static final org.sonar.batch.protocol.output.BatchReport.Measure DEFAULT_INSTANCE;
6515    static {
6516      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Measure();
6517    }
6518
6519    public static org.sonar.batch.protocol.output.BatchReport.Measure getDefaultInstance() {
6520      return DEFAULT_INSTANCE;
6521    }
6522
6523    @java.lang.Deprecated public static final com.google.protobuf.Parser<Measure>
6524        PARSER = new com.google.protobuf.AbstractParser<Measure>() {
6525      public Measure parsePartialFrom(
6526          com.google.protobuf.CodedInputStream input,
6527          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
6528          throws com.google.protobuf.InvalidProtocolBufferException {
6529        try {
6530          return new Measure(input, extensionRegistry);
6531        } catch (RuntimeException e) {
6532          if (e.getCause() instanceof
6533              com.google.protobuf.InvalidProtocolBufferException) {
6534            throw (com.google.protobuf.InvalidProtocolBufferException)
6535                e.getCause();
6536          }
6537          throw e;
6538        }
6539      }
6540    };
6541
6542    public static com.google.protobuf.Parser<Measure> parser() {
6543      return PARSER;
6544    }
6545
6546    @java.lang.Override
6547    public com.google.protobuf.Parser<Measure> getParserForType() {
6548      return PARSER;
6549    }
6550
6551    public org.sonar.batch.protocol.output.BatchReport.Measure getDefaultInstanceForType() {
6552      return DEFAULT_INSTANCE;
6553    }
6554
6555  }
6556
6557  public interface IssueOrBuilder extends
6558      // @@protoc_insertion_point(interface_extends:Issue)
6559      com.google.protobuf.MessageOrBuilder {
6560
6561    /**
6562     * <code>optional string rule_repository = 1;</code>
6563     */
6564    boolean hasRuleRepository();
6565    /**
6566     * <code>optional string rule_repository = 1;</code>
6567     */
6568    java.lang.String getRuleRepository();
6569    /**
6570     * <code>optional string rule_repository = 1;</code>
6571     */
6572    com.google.protobuf.ByteString
6573        getRuleRepositoryBytes();
6574
6575    /**
6576     * <code>optional string rule_key = 2;</code>
6577     */
6578    boolean hasRuleKey();
6579    /**
6580     * <code>optional string rule_key = 2;</code>
6581     */
6582    java.lang.String getRuleKey();
6583    /**
6584     * <code>optional string rule_key = 2;</code>
6585     */
6586    com.google.protobuf.ByteString
6587        getRuleKeyBytes();
6588
6589    /**
6590     * <code>optional int32 line = 3;</code>
6591     *
6592     * <pre>
6593     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6594     *TODO To be removed. Use first line of text_range instead
6595     * </pre>
6596     */
6597    boolean hasLine();
6598    /**
6599     * <code>optional int32 line = 3;</code>
6600     *
6601     * <pre>
6602     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6603     *TODO To be removed. Use first line of text_range instead
6604     * </pre>
6605     */
6606    int getLine();
6607
6608    /**
6609     * <code>optional string msg = 4;</code>
6610     */
6611    boolean hasMsg();
6612    /**
6613     * <code>optional string msg = 4;</code>
6614     */
6615    java.lang.String getMsg();
6616    /**
6617     * <code>optional string msg = 4;</code>
6618     */
6619    com.google.protobuf.ByteString
6620        getMsgBytes();
6621
6622    /**
6623     * <code>optional .Severity severity = 5;</code>
6624     */
6625    boolean hasSeverity();
6626    /**
6627     * <code>optional .Severity severity = 5;</code>
6628     */
6629    org.sonar.batch.protocol.Constants.Severity getSeverity();
6630
6631    /**
6632     * <code>optional double effort_to_fix = 6;</code>
6633     */
6634    boolean hasEffortToFix();
6635    /**
6636     * <code>optional double effort_to_fix = 6;</code>
6637     */
6638    double getEffortToFix();
6639
6640    /**
6641     * <code>optional .TextRange text_range = 7;</code>
6642     *
6643     * <pre>
6644     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6645     * </pre>
6646     */
6647    boolean hasTextRange();
6648    /**
6649     * <code>optional .TextRange text_range = 7;</code>
6650     *
6651     * <pre>
6652     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6653     * </pre>
6654     */
6655    org.sonar.batch.protocol.output.BatchReport.TextRange getTextRange();
6656    /**
6657     * <code>optional .TextRange text_range = 7;</code>
6658     *
6659     * <pre>
6660     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6661     * </pre>
6662     */
6663    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getTextRangeOrBuilder();
6664
6665    /**
6666     * <code>repeated .Flow flow = 8;</code>
6667     */
6668    java.util.List<org.sonar.batch.protocol.output.BatchReport.Flow> 
6669        getFlowList();
6670    /**
6671     * <code>repeated .Flow flow = 8;</code>
6672     */
6673    org.sonar.batch.protocol.output.BatchReport.Flow getFlow(int index);
6674    /**
6675     * <code>repeated .Flow flow = 8;</code>
6676     */
6677    int getFlowCount();
6678    /**
6679     * <code>repeated .Flow flow = 8;</code>
6680     */
6681    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder> 
6682        getFlowOrBuilderList();
6683    /**
6684     * <code>repeated .Flow flow = 8;</code>
6685     */
6686    org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder getFlowOrBuilder(
6687        int index);
6688  }
6689  /**
6690   * Protobuf type {@code Issue}
6691   */
6692  public  static final class Issue extends
6693      com.google.protobuf.GeneratedMessage implements
6694      // @@protoc_insertion_point(message_implements:Issue)
6695      IssueOrBuilder {
6696    // Use Issue.newBuilder() to construct.
6697    private Issue(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
6698      super(builder);
6699    }
6700    private Issue() {
6701      ruleRepository_ = "";
6702      ruleKey_ = "";
6703      line_ = 0;
6704      msg_ = "";
6705      severity_ = 0;
6706      effortToFix_ = 0D;
6707      flow_ = java.util.Collections.emptyList();
6708    }
6709
6710    @java.lang.Override
6711    public final com.google.protobuf.UnknownFieldSet
6712    getUnknownFields() {
6713      return this.unknownFields;
6714    }
6715    private Issue(
6716        com.google.protobuf.CodedInputStream input,
6717        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
6718      this();
6719      int mutable_bitField0_ = 0;
6720      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
6721          com.google.protobuf.UnknownFieldSet.newBuilder();
6722      try {
6723        boolean done = false;
6724        while (!done) {
6725          int tag = input.readTag();
6726          switch (tag) {
6727            case 0:
6728              done = true;
6729              break;
6730            default: {
6731              if (!parseUnknownField(input, unknownFields,
6732                                     extensionRegistry, tag)) {
6733                done = true;
6734              }
6735              break;
6736            }
6737            case 10: {
6738              com.google.protobuf.ByteString bs = input.readBytes();
6739              bitField0_ |= 0x00000001;
6740              ruleRepository_ = bs;
6741              break;
6742            }
6743            case 18: {
6744              com.google.protobuf.ByteString bs = input.readBytes();
6745              bitField0_ |= 0x00000002;
6746              ruleKey_ = bs;
6747              break;
6748            }
6749            case 24: {
6750              bitField0_ |= 0x00000004;
6751              line_ = input.readInt32();
6752              break;
6753            }
6754            case 34: {
6755              com.google.protobuf.ByteString bs = input.readBytes();
6756              bitField0_ |= 0x00000008;
6757              msg_ = bs;
6758              break;
6759            }
6760            case 40: {
6761              int rawValue = input.readEnum();
6762              org.sonar.batch.protocol.Constants.Severity value = org.sonar.batch.protocol.Constants.Severity.valueOf(rawValue);
6763              if (value == null) {
6764                unknownFields.mergeVarintField(5, rawValue);
6765              } else {
6766                bitField0_ |= 0x00000010;
6767                severity_ = rawValue;
6768              }
6769              break;
6770            }
6771            case 49: {
6772              bitField0_ |= 0x00000020;
6773              effortToFix_ = input.readDouble();
6774              break;
6775            }
6776            case 58: {
6777              org.sonar.batch.protocol.output.BatchReport.TextRange.Builder subBuilder = null;
6778              if (((bitField0_ & 0x00000040) == 0x00000040)) {
6779                subBuilder = textRange_.toBuilder();
6780              }
6781              textRange_ = input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.parser(), extensionRegistry);
6782              if (subBuilder != null) {
6783                subBuilder.mergeFrom(textRange_);
6784                textRange_ = subBuilder.buildPartial();
6785              }
6786              bitField0_ |= 0x00000040;
6787              break;
6788            }
6789            case 66: {
6790              if (!((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
6791                flow_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.Flow>();
6792                mutable_bitField0_ |= 0x00000080;
6793              }
6794              flow_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.Flow.parser(), extensionRegistry));
6795              break;
6796            }
6797          }
6798        }
6799      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
6800        throw new RuntimeException(e.setUnfinishedMessage(this));
6801      } catch (java.io.IOException e) {
6802        throw new RuntimeException(
6803            new com.google.protobuf.InvalidProtocolBufferException(
6804                e.getMessage()).setUnfinishedMessage(this));
6805      } finally {
6806        if (((mutable_bitField0_ & 0x00000080) == 0x00000080)) {
6807          flow_ = java.util.Collections.unmodifiableList(flow_);
6808        }
6809        this.unknownFields = unknownFields.build();
6810        makeExtensionsImmutable();
6811      }
6812    }
6813    public static final com.google.protobuf.Descriptors.Descriptor
6814        getDescriptor() {
6815      return org.sonar.batch.protocol.output.BatchReport.internal_static_Issue_descriptor;
6816    }
6817
6818    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
6819        internalGetFieldAccessorTable() {
6820      return org.sonar.batch.protocol.output.BatchReport.internal_static_Issue_fieldAccessorTable
6821          .ensureFieldAccessorsInitialized(
6822              org.sonar.batch.protocol.output.BatchReport.Issue.class, org.sonar.batch.protocol.output.BatchReport.Issue.Builder.class);
6823    }
6824
6825    private int bitField0_;
6826    public static final int RULE_REPOSITORY_FIELD_NUMBER = 1;
6827    private volatile java.lang.Object ruleRepository_;
6828    /**
6829     * <code>optional string rule_repository = 1;</code>
6830     */
6831    public boolean hasRuleRepository() {
6832      return ((bitField0_ & 0x00000001) == 0x00000001);
6833    }
6834    /**
6835     * <code>optional string rule_repository = 1;</code>
6836     */
6837    public java.lang.String getRuleRepository() {
6838      java.lang.Object ref = ruleRepository_;
6839      if (ref instanceof java.lang.String) {
6840        return (java.lang.String) ref;
6841      } else {
6842        com.google.protobuf.ByteString bs = 
6843            (com.google.protobuf.ByteString) ref;
6844        java.lang.String s = bs.toStringUtf8();
6845        if (bs.isValidUtf8()) {
6846          ruleRepository_ = s;
6847        }
6848        return s;
6849      }
6850    }
6851    /**
6852     * <code>optional string rule_repository = 1;</code>
6853     */
6854    public com.google.protobuf.ByteString
6855        getRuleRepositoryBytes() {
6856      java.lang.Object ref = ruleRepository_;
6857      if (ref instanceof java.lang.String) {
6858        com.google.protobuf.ByteString b = 
6859            com.google.protobuf.ByteString.copyFromUtf8(
6860                (java.lang.String) ref);
6861        ruleRepository_ = b;
6862        return b;
6863      } else {
6864        return (com.google.protobuf.ByteString) ref;
6865      }
6866    }
6867
6868    public static final int RULE_KEY_FIELD_NUMBER = 2;
6869    private volatile java.lang.Object ruleKey_;
6870    /**
6871     * <code>optional string rule_key = 2;</code>
6872     */
6873    public boolean hasRuleKey() {
6874      return ((bitField0_ & 0x00000002) == 0x00000002);
6875    }
6876    /**
6877     * <code>optional string rule_key = 2;</code>
6878     */
6879    public java.lang.String getRuleKey() {
6880      java.lang.Object ref = ruleKey_;
6881      if (ref instanceof java.lang.String) {
6882        return (java.lang.String) ref;
6883      } else {
6884        com.google.protobuf.ByteString bs = 
6885            (com.google.protobuf.ByteString) ref;
6886        java.lang.String s = bs.toStringUtf8();
6887        if (bs.isValidUtf8()) {
6888          ruleKey_ = s;
6889        }
6890        return s;
6891      }
6892    }
6893    /**
6894     * <code>optional string rule_key = 2;</code>
6895     */
6896    public com.google.protobuf.ByteString
6897        getRuleKeyBytes() {
6898      java.lang.Object ref = ruleKey_;
6899      if (ref instanceof java.lang.String) {
6900        com.google.protobuf.ByteString b = 
6901            com.google.protobuf.ByteString.copyFromUtf8(
6902                (java.lang.String) ref);
6903        ruleKey_ = b;
6904        return b;
6905      } else {
6906        return (com.google.protobuf.ByteString) ref;
6907      }
6908    }
6909
6910    public static final int LINE_FIELD_NUMBER = 3;
6911    private int line_;
6912    /**
6913     * <code>optional int32 line = 3;</code>
6914     *
6915     * <pre>
6916     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6917     *TODO To be removed. Use first line of text_range instead
6918     * </pre>
6919     */
6920    public boolean hasLine() {
6921      return ((bitField0_ & 0x00000004) == 0x00000004);
6922    }
6923    /**
6924     * <code>optional int32 line = 3;</code>
6925     *
6926     * <pre>
6927     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
6928     *TODO To be removed. Use first line of text_range instead
6929     * </pre>
6930     */
6931    public int getLine() {
6932      return line_;
6933    }
6934
6935    public static final int MSG_FIELD_NUMBER = 4;
6936    private volatile java.lang.Object msg_;
6937    /**
6938     * <code>optional string msg = 4;</code>
6939     */
6940    public boolean hasMsg() {
6941      return ((bitField0_ & 0x00000008) == 0x00000008);
6942    }
6943    /**
6944     * <code>optional string msg = 4;</code>
6945     */
6946    public java.lang.String getMsg() {
6947      java.lang.Object ref = msg_;
6948      if (ref instanceof java.lang.String) {
6949        return (java.lang.String) ref;
6950      } else {
6951        com.google.protobuf.ByteString bs = 
6952            (com.google.protobuf.ByteString) ref;
6953        java.lang.String s = bs.toStringUtf8();
6954        if (bs.isValidUtf8()) {
6955          msg_ = s;
6956        }
6957        return s;
6958      }
6959    }
6960    /**
6961     * <code>optional string msg = 4;</code>
6962     */
6963    public com.google.protobuf.ByteString
6964        getMsgBytes() {
6965      java.lang.Object ref = msg_;
6966      if (ref instanceof java.lang.String) {
6967        com.google.protobuf.ByteString b = 
6968            com.google.protobuf.ByteString.copyFromUtf8(
6969                (java.lang.String) ref);
6970        msg_ = b;
6971        return b;
6972      } else {
6973        return (com.google.protobuf.ByteString) ref;
6974      }
6975    }
6976
6977    public static final int SEVERITY_FIELD_NUMBER = 5;
6978    private int severity_;
6979    /**
6980     * <code>optional .Severity severity = 5;</code>
6981     */
6982    public boolean hasSeverity() {
6983      return ((bitField0_ & 0x00000010) == 0x00000010);
6984    }
6985    /**
6986     * <code>optional .Severity severity = 5;</code>
6987     */
6988    public org.sonar.batch.protocol.Constants.Severity getSeverity() {
6989      org.sonar.batch.protocol.Constants.Severity result = org.sonar.batch.protocol.Constants.Severity.valueOf(severity_);
6990      return result == null ? org.sonar.batch.protocol.Constants.Severity.INFO : result;
6991    }
6992
6993    public static final int EFFORT_TO_FIX_FIELD_NUMBER = 6;
6994    private double effortToFix_;
6995    /**
6996     * <code>optional double effort_to_fix = 6;</code>
6997     */
6998    public boolean hasEffortToFix() {
6999      return ((bitField0_ & 0x00000020) == 0x00000020);
7000    }
7001    /**
7002     * <code>optional double effort_to_fix = 6;</code>
7003     */
7004    public double getEffortToFix() {
7005      return effortToFix_;
7006    }
7007
7008    public static final int TEXT_RANGE_FIELD_NUMBER = 7;
7009    private org.sonar.batch.protocol.output.BatchReport.TextRange textRange_;
7010    /**
7011     * <code>optional .TextRange text_range = 7;</code>
7012     *
7013     * <pre>
7014     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7015     * </pre>
7016     */
7017    public boolean hasTextRange() {
7018      return ((bitField0_ & 0x00000040) == 0x00000040);
7019    }
7020    /**
7021     * <code>optional .TextRange text_range = 7;</code>
7022     *
7023     * <pre>
7024     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7025     * </pre>
7026     */
7027    public org.sonar.batch.protocol.output.BatchReport.TextRange getTextRange() {
7028      return textRange_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
7029    }
7030    /**
7031     * <code>optional .TextRange text_range = 7;</code>
7032     *
7033     * <pre>
7034     * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7035     * </pre>
7036     */
7037    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getTextRangeOrBuilder() {
7038      return textRange_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
7039    }
7040
7041    public static final int FLOW_FIELD_NUMBER = 8;
7042    private java.util.List<org.sonar.batch.protocol.output.BatchReport.Flow> flow_;
7043    /**
7044     * <code>repeated .Flow flow = 8;</code>
7045     */
7046    public java.util.List<org.sonar.batch.protocol.output.BatchReport.Flow> getFlowList() {
7047      return flow_;
7048    }
7049    /**
7050     * <code>repeated .Flow flow = 8;</code>
7051     */
7052    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder> 
7053        getFlowOrBuilderList() {
7054      return flow_;
7055    }
7056    /**
7057     * <code>repeated .Flow flow = 8;</code>
7058     */
7059    public int getFlowCount() {
7060      return flow_.size();
7061    }
7062    /**
7063     * <code>repeated .Flow flow = 8;</code>
7064     */
7065    public org.sonar.batch.protocol.output.BatchReport.Flow getFlow(int index) {
7066      return flow_.get(index);
7067    }
7068    /**
7069     * <code>repeated .Flow flow = 8;</code>
7070     */
7071    public org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder getFlowOrBuilder(
7072        int index) {
7073      return flow_.get(index);
7074    }
7075
7076    private byte memoizedIsInitialized = -1;
7077    public final boolean isInitialized() {
7078      byte isInitialized = memoizedIsInitialized;
7079      if (isInitialized == 1) return true;
7080      if (isInitialized == 0) return false;
7081
7082      memoizedIsInitialized = 1;
7083      return true;
7084    }
7085
7086    public void writeTo(com.google.protobuf.CodedOutputStream output)
7087                        throws java.io.IOException {
7088      if (((bitField0_ & 0x00000001) == 0x00000001)) {
7089        com.google.protobuf.GeneratedMessage.writeString(output, 1, ruleRepository_);
7090      }
7091      if (((bitField0_ & 0x00000002) == 0x00000002)) {
7092        com.google.protobuf.GeneratedMessage.writeString(output, 2, ruleKey_);
7093      }
7094      if (((bitField0_ & 0x00000004) == 0x00000004)) {
7095        output.writeInt32(3, line_);
7096      }
7097      if (((bitField0_ & 0x00000008) == 0x00000008)) {
7098        com.google.protobuf.GeneratedMessage.writeString(output, 4, msg_);
7099      }
7100      if (((bitField0_ & 0x00000010) == 0x00000010)) {
7101        output.writeEnum(5, severity_);
7102      }
7103      if (((bitField0_ & 0x00000020) == 0x00000020)) {
7104        output.writeDouble(6, effortToFix_);
7105      }
7106      if (((bitField0_ & 0x00000040) == 0x00000040)) {
7107        output.writeMessage(7, getTextRange());
7108      }
7109      for (int i = 0; i < flow_.size(); i++) {
7110        output.writeMessage(8, flow_.get(i));
7111      }
7112      unknownFields.writeTo(output);
7113    }
7114
7115    public int getSerializedSize() {
7116      int size = memoizedSize;
7117      if (size != -1) return size;
7118
7119      size = 0;
7120      if (((bitField0_ & 0x00000001) == 0x00000001)) {
7121        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, ruleRepository_);
7122      }
7123      if (((bitField0_ & 0x00000002) == 0x00000002)) {
7124        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, ruleKey_);
7125      }
7126      if (((bitField0_ & 0x00000004) == 0x00000004)) {
7127        size += com.google.protobuf.CodedOutputStream
7128          .computeInt32Size(3, line_);
7129      }
7130      if (((bitField0_ & 0x00000008) == 0x00000008)) {
7131        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, msg_);
7132      }
7133      if (((bitField0_ & 0x00000010) == 0x00000010)) {
7134        size += com.google.protobuf.CodedOutputStream
7135          .computeEnumSize(5, severity_);
7136      }
7137      if (((bitField0_ & 0x00000020) == 0x00000020)) {
7138        size += com.google.protobuf.CodedOutputStream
7139          .computeDoubleSize(6, effortToFix_);
7140      }
7141      if (((bitField0_ & 0x00000040) == 0x00000040)) {
7142        size += com.google.protobuf.CodedOutputStream
7143          .computeMessageSize(7, getTextRange());
7144      }
7145      for (int i = 0; i < flow_.size(); i++) {
7146        size += com.google.protobuf.CodedOutputStream
7147          .computeMessageSize(8, flow_.get(i));
7148      }
7149      size += unknownFields.getSerializedSize();
7150      memoizedSize = size;
7151      return size;
7152    }
7153
7154    private static final long serialVersionUID = 0L;
7155    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(
7156        com.google.protobuf.ByteString data)
7157        throws com.google.protobuf.InvalidProtocolBufferException {
7158      return PARSER.parseFrom(data);
7159    }
7160    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(
7161        com.google.protobuf.ByteString data,
7162        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7163        throws com.google.protobuf.InvalidProtocolBufferException {
7164      return PARSER.parseFrom(data, extensionRegistry);
7165    }
7166    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(byte[] data)
7167        throws com.google.protobuf.InvalidProtocolBufferException {
7168      return PARSER.parseFrom(data);
7169    }
7170    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(
7171        byte[] data,
7172        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7173        throws com.google.protobuf.InvalidProtocolBufferException {
7174      return PARSER.parseFrom(data, extensionRegistry);
7175    }
7176    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(java.io.InputStream input)
7177        throws java.io.IOException {
7178      return PARSER.parseFrom(input);
7179    }
7180    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(
7181        java.io.InputStream input,
7182        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7183        throws java.io.IOException {
7184      return PARSER.parseFrom(input, extensionRegistry);
7185    }
7186    public static org.sonar.batch.protocol.output.BatchReport.Issue parseDelimitedFrom(java.io.InputStream input)
7187        throws java.io.IOException {
7188      return PARSER.parseDelimitedFrom(input);
7189    }
7190    public static org.sonar.batch.protocol.output.BatchReport.Issue parseDelimitedFrom(
7191        java.io.InputStream input,
7192        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7193        throws java.io.IOException {
7194      return PARSER.parseDelimitedFrom(input, extensionRegistry);
7195    }
7196    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(
7197        com.google.protobuf.CodedInputStream input)
7198        throws java.io.IOException {
7199      return PARSER.parseFrom(input);
7200    }
7201    public static org.sonar.batch.protocol.output.BatchReport.Issue parseFrom(
7202        com.google.protobuf.CodedInputStream input,
7203        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7204        throws java.io.IOException {
7205      return PARSER.parseFrom(input, extensionRegistry);
7206    }
7207
7208    public Builder newBuilderForType() { return newBuilder(); }
7209    public static Builder newBuilder() {
7210      return DEFAULT_INSTANCE.toBuilder();
7211    }
7212    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Issue prototype) {
7213      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
7214    }
7215    public Builder toBuilder() {
7216      return this == DEFAULT_INSTANCE
7217          ? new Builder() : new Builder().mergeFrom(this);
7218    }
7219
7220    @java.lang.Override
7221    protected Builder newBuilderForType(
7222        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
7223      Builder builder = new Builder(parent);
7224      return builder;
7225    }
7226    /**
7227     * Protobuf type {@code Issue}
7228     */
7229    public static final class Builder extends
7230        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
7231        // @@protoc_insertion_point(builder_implements:Issue)
7232        org.sonar.batch.protocol.output.BatchReport.IssueOrBuilder {
7233      public static final com.google.protobuf.Descriptors.Descriptor
7234          getDescriptor() {
7235        return org.sonar.batch.protocol.output.BatchReport.internal_static_Issue_descriptor;
7236      }
7237
7238      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
7239          internalGetFieldAccessorTable() {
7240        return org.sonar.batch.protocol.output.BatchReport.internal_static_Issue_fieldAccessorTable
7241            .ensureFieldAccessorsInitialized(
7242                org.sonar.batch.protocol.output.BatchReport.Issue.class, org.sonar.batch.protocol.output.BatchReport.Issue.Builder.class);
7243      }
7244
7245      // Construct using org.sonar.batch.protocol.output.BatchReport.Issue.newBuilder()
7246      private Builder() {
7247        maybeForceBuilderInitialization();
7248      }
7249
7250      private Builder(
7251          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
7252        super(parent);
7253        maybeForceBuilderInitialization();
7254      }
7255      private void maybeForceBuilderInitialization() {
7256        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
7257          getTextRangeFieldBuilder();
7258          getFlowFieldBuilder();
7259        }
7260      }
7261      public Builder clear() {
7262        super.clear();
7263        ruleRepository_ = "";
7264        bitField0_ = (bitField0_ & ~0x00000001);
7265        ruleKey_ = "";
7266        bitField0_ = (bitField0_ & ~0x00000002);
7267        line_ = 0;
7268        bitField0_ = (bitField0_ & ~0x00000004);
7269        msg_ = "";
7270        bitField0_ = (bitField0_ & ~0x00000008);
7271        severity_ = 0;
7272        bitField0_ = (bitField0_ & ~0x00000010);
7273        effortToFix_ = 0D;
7274        bitField0_ = (bitField0_ & ~0x00000020);
7275        if (textRangeBuilder_ == null) {
7276          textRange_ = null;
7277        } else {
7278          textRangeBuilder_.clear();
7279        }
7280        bitField0_ = (bitField0_ & ~0x00000040);
7281        if (flowBuilder_ == null) {
7282          flow_ = java.util.Collections.emptyList();
7283          bitField0_ = (bitField0_ & ~0x00000080);
7284        } else {
7285          flowBuilder_.clear();
7286        }
7287        return this;
7288      }
7289
7290      public com.google.protobuf.Descriptors.Descriptor
7291          getDescriptorForType() {
7292        return org.sonar.batch.protocol.output.BatchReport.internal_static_Issue_descriptor;
7293      }
7294
7295      public org.sonar.batch.protocol.output.BatchReport.Issue getDefaultInstanceForType() {
7296        return org.sonar.batch.protocol.output.BatchReport.Issue.getDefaultInstance();
7297      }
7298
7299      public org.sonar.batch.protocol.output.BatchReport.Issue build() {
7300        org.sonar.batch.protocol.output.BatchReport.Issue result = buildPartial();
7301        if (!result.isInitialized()) {
7302          throw newUninitializedMessageException(result);
7303        }
7304        return result;
7305      }
7306
7307      public org.sonar.batch.protocol.output.BatchReport.Issue buildPartial() {
7308        org.sonar.batch.protocol.output.BatchReport.Issue result = new org.sonar.batch.protocol.output.BatchReport.Issue(this);
7309        int from_bitField0_ = bitField0_;
7310        int to_bitField0_ = 0;
7311        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
7312          to_bitField0_ |= 0x00000001;
7313        }
7314        result.ruleRepository_ = ruleRepository_;
7315        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
7316          to_bitField0_ |= 0x00000002;
7317        }
7318        result.ruleKey_ = ruleKey_;
7319        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
7320          to_bitField0_ |= 0x00000004;
7321        }
7322        result.line_ = line_;
7323        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
7324          to_bitField0_ |= 0x00000008;
7325        }
7326        result.msg_ = msg_;
7327        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
7328          to_bitField0_ |= 0x00000010;
7329        }
7330        result.severity_ = severity_;
7331        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
7332          to_bitField0_ |= 0x00000020;
7333        }
7334        result.effortToFix_ = effortToFix_;
7335        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
7336          to_bitField0_ |= 0x00000040;
7337        }
7338        if (textRangeBuilder_ == null) {
7339          result.textRange_ = textRange_;
7340        } else {
7341          result.textRange_ = textRangeBuilder_.build();
7342        }
7343        if (flowBuilder_ == null) {
7344          if (((bitField0_ & 0x00000080) == 0x00000080)) {
7345            flow_ = java.util.Collections.unmodifiableList(flow_);
7346            bitField0_ = (bitField0_ & ~0x00000080);
7347          }
7348          result.flow_ = flow_;
7349        } else {
7350          result.flow_ = flowBuilder_.build();
7351        }
7352        result.bitField0_ = to_bitField0_;
7353        onBuilt();
7354        return result;
7355      }
7356
7357      public Builder mergeFrom(com.google.protobuf.Message other) {
7358        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Issue) {
7359          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Issue)other);
7360        } else {
7361          super.mergeFrom(other);
7362          return this;
7363        }
7364      }
7365
7366      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Issue other) {
7367        if (other == org.sonar.batch.protocol.output.BatchReport.Issue.getDefaultInstance()) return this;
7368        if (other.hasRuleRepository()) {
7369          bitField0_ |= 0x00000001;
7370          ruleRepository_ = other.ruleRepository_;
7371          onChanged();
7372        }
7373        if (other.hasRuleKey()) {
7374          bitField0_ |= 0x00000002;
7375          ruleKey_ = other.ruleKey_;
7376          onChanged();
7377        }
7378        if (other.hasLine()) {
7379          setLine(other.getLine());
7380        }
7381        if (other.hasMsg()) {
7382          bitField0_ |= 0x00000008;
7383          msg_ = other.msg_;
7384          onChanged();
7385        }
7386        if (other.hasSeverity()) {
7387          setSeverity(other.getSeverity());
7388        }
7389        if (other.hasEffortToFix()) {
7390          setEffortToFix(other.getEffortToFix());
7391        }
7392        if (other.hasTextRange()) {
7393          mergeTextRange(other.getTextRange());
7394        }
7395        if (flowBuilder_ == null) {
7396          if (!other.flow_.isEmpty()) {
7397            if (flow_.isEmpty()) {
7398              flow_ = other.flow_;
7399              bitField0_ = (bitField0_ & ~0x00000080);
7400            } else {
7401              ensureFlowIsMutable();
7402              flow_.addAll(other.flow_);
7403            }
7404            onChanged();
7405          }
7406        } else {
7407          if (!other.flow_.isEmpty()) {
7408            if (flowBuilder_.isEmpty()) {
7409              flowBuilder_.dispose();
7410              flowBuilder_ = null;
7411              flow_ = other.flow_;
7412              bitField0_ = (bitField0_ & ~0x00000080);
7413              flowBuilder_ = 
7414                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
7415                   getFlowFieldBuilder() : null;
7416            } else {
7417              flowBuilder_.addAllMessages(other.flow_);
7418            }
7419          }
7420        }
7421        this.mergeUnknownFields(other.unknownFields);
7422        onChanged();
7423        return this;
7424      }
7425
7426      public final boolean isInitialized() {
7427        return true;
7428      }
7429
7430      public Builder mergeFrom(
7431          com.google.protobuf.CodedInputStream input,
7432          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
7433          throws java.io.IOException {
7434        org.sonar.batch.protocol.output.BatchReport.Issue parsedMessage = null;
7435        try {
7436          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
7437        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
7438          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Issue) e.getUnfinishedMessage();
7439          throw e;
7440        } finally {
7441          if (parsedMessage != null) {
7442            mergeFrom(parsedMessage);
7443          }
7444        }
7445        return this;
7446      }
7447      private int bitField0_;
7448
7449      private java.lang.Object ruleRepository_ = "";
7450      /**
7451       * <code>optional string rule_repository = 1;</code>
7452       */
7453      public boolean hasRuleRepository() {
7454        return ((bitField0_ & 0x00000001) == 0x00000001);
7455      }
7456      /**
7457       * <code>optional string rule_repository = 1;</code>
7458       */
7459      public java.lang.String getRuleRepository() {
7460        java.lang.Object ref = ruleRepository_;
7461        if (!(ref instanceof java.lang.String)) {
7462          com.google.protobuf.ByteString bs =
7463              (com.google.protobuf.ByteString) ref;
7464          java.lang.String s = bs.toStringUtf8();
7465          if (bs.isValidUtf8()) {
7466            ruleRepository_ = s;
7467          }
7468          return s;
7469        } else {
7470          return (java.lang.String) ref;
7471        }
7472      }
7473      /**
7474       * <code>optional string rule_repository = 1;</code>
7475       */
7476      public com.google.protobuf.ByteString
7477          getRuleRepositoryBytes() {
7478        java.lang.Object ref = ruleRepository_;
7479        if (ref instanceof String) {
7480          com.google.protobuf.ByteString b = 
7481              com.google.protobuf.ByteString.copyFromUtf8(
7482                  (java.lang.String) ref);
7483          ruleRepository_ = b;
7484          return b;
7485        } else {
7486          return (com.google.protobuf.ByteString) ref;
7487        }
7488      }
7489      /**
7490       * <code>optional string rule_repository = 1;</code>
7491       */
7492      public Builder setRuleRepository(
7493          java.lang.String value) {
7494        if (value == null) {
7495    throw new NullPointerException();
7496  }
7497  bitField0_ |= 0x00000001;
7498        ruleRepository_ = value;
7499        onChanged();
7500        return this;
7501      }
7502      /**
7503       * <code>optional string rule_repository = 1;</code>
7504       */
7505      public Builder clearRuleRepository() {
7506        bitField0_ = (bitField0_ & ~0x00000001);
7507        ruleRepository_ = getDefaultInstance().getRuleRepository();
7508        onChanged();
7509        return this;
7510      }
7511      /**
7512       * <code>optional string rule_repository = 1;</code>
7513       */
7514      public Builder setRuleRepositoryBytes(
7515          com.google.protobuf.ByteString value) {
7516        if (value == null) {
7517    throw new NullPointerException();
7518  }
7519  bitField0_ |= 0x00000001;
7520        ruleRepository_ = value;
7521        onChanged();
7522        return this;
7523      }
7524
7525      private java.lang.Object ruleKey_ = "";
7526      /**
7527       * <code>optional string rule_key = 2;</code>
7528       */
7529      public boolean hasRuleKey() {
7530        return ((bitField0_ & 0x00000002) == 0x00000002);
7531      }
7532      /**
7533       * <code>optional string rule_key = 2;</code>
7534       */
7535      public java.lang.String getRuleKey() {
7536        java.lang.Object ref = ruleKey_;
7537        if (!(ref instanceof java.lang.String)) {
7538          com.google.protobuf.ByteString bs =
7539              (com.google.protobuf.ByteString) ref;
7540          java.lang.String s = bs.toStringUtf8();
7541          if (bs.isValidUtf8()) {
7542            ruleKey_ = s;
7543          }
7544          return s;
7545        } else {
7546          return (java.lang.String) ref;
7547        }
7548      }
7549      /**
7550       * <code>optional string rule_key = 2;</code>
7551       */
7552      public com.google.protobuf.ByteString
7553          getRuleKeyBytes() {
7554        java.lang.Object ref = ruleKey_;
7555        if (ref instanceof String) {
7556          com.google.protobuf.ByteString b = 
7557              com.google.protobuf.ByteString.copyFromUtf8(
7558                  (java.lang.String) ref);
7559          ruleKey_ = b;
7560          return b;
7561        } else {
7562          return (com.google.protobuf.ByteString) ref;
7563        }
7564      }
7565      /**
7566       * <code>optional string rule_key = 2;</code>
7567       */
7568      public Builder setRuleKey(
7569          java.lang.String value) {
7570        if (value == null) {
7571    throw new NullPointerException();
7572  }
7573  bitField0_ |= 0x00000002;
7574        ruleKey_ = value;
7575        onChanged();
7576        return this;
7577      }
7578      /**
7579       * <code>optional string rule_key = 2;</code>
7580       */
7581      public Builder clearRuleKey() {
7582        bitField0_ = (bitField0_ & ~0x00000002);
7583        ruleKey_ = getDefaultInstance().getRuleKey();
7584        onChanged();
7585        return this;
7586      }
7587      /**
7588       * <code>optional string rule_key = 2;</code>
7589       */
7590      public Builder setRuleKeyBytes(
7591          com.google.protobuf.ByteString value) {
7592        if (value == null) {
7593    throw new NullPointerException();
7594  }
7595  bitField0_ |= 0x00000002;
7596        ruleKey_ = value;
7597        onChanged();
7598        return this;
7599      }
7600
7601      private int line_ ;
7602      /**
7603       * <code>optional int32 line = 3;</code>
7604       *
7605       * <pre>
7606       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7607       *TODO To be removed. Use first line of text_range instead
7608       * </pre>
7609       */
7610      public boolean hasLine() {
7611        return ((bitField0_ & 0x00000004) == 0x00000004);
7612      }
7613      /**
7614       * <code>optional int32 line = 3;</code>
7615       *
7616       * <pre>
7617       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7618       *TODO To be removed. Use first line of text_range instead
7619       * </pre>
7620       */
7621      public int getLine() {
7622        return line_;
7623      }
7624      /**
7625       * <code>optional int32 line = 3;</code>
7626       *
7627       * <pre>
7628       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7629       *TODO To be removed. Use first line of text_range instead
7630       * </pre>
7631       */
7632      public Builder setLine(int value) {
7633        bitField0_ |= 0x00000004;
7634        line_ = value;
7635        onChanged();
7636        return this;
7637      }
7638      /**
7639       * <code>optional int32 line = 3;</code>
7640       *
7641       * <pre>
7642       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7643       *TODO To be removed. Use first line of text_range instead
7644       * </pre>
7645       */
7646      public Builder clearLine() {
7647        bitField0_ = (bitField0_ & ~0x00000004);
7648        line_ = 0;
7649        onChanged();
7650        return this;
7651      }
7652
7653      private java.lang.Object msg_ = "";
7654      /**
7655       * <code>optional string msg = 4;</code>
7656       */
7657      public boolean hasMsg() {
7658        return ((bitField0_ & 0x00000008) == 0x00000008);
7659      }
7660      /**
7661       * <code>optional string msg = 4;</code>
7662       */
7663      public java.lang.String getMsg() {
7664        java.lang.Object ref = msg_;
7665        if (!(ref instanceof java.lang.String)) {
7666          com.google.protobuf.ByteString bs =
7667              (com.google.protobuf.ByteString) ref;
7668          java.lang.String s = bs.toStringUtf8();
7669          if (bs.isValidUtf8()) {
7670            msg_ = s;
7671          }
7672          return s;
7673        } else {
7674          return (java.lang.String) ref;
7675        }
7676      }
7677      /**
7678       * <code>optional string msg = 4;</code>
7679       */
7680      public com.google.protobuf.ByteString
7681          getMsgBytes() {
7682        java.lang.Object ref = msg_;
7683        if (ref instanceof String) {
7684          com.google.protobuf.ByteString b = 
7685              com.google.protobuf.ByteString.copyFromUtf8(
7686                  (java.lang.String) ref);
7687          msg_ = b;
7688          return b;
7689        } else {
7690          return (com.google.protobuf.ByteString) ref;
7691        }
7692      }
7693      /**
7694       * <code>optional string msg = 4;</code>
7695       */
7696      public Builder setMsg(
7697          java.lang.String value) {
7698        if (value == null) {
7699    throw new NullPointerException();
7700  }
7701  bitField0_ |= 0x00000008;
7702        msg_ = value;
7703        onChanged();
7704        return this;
7705      }
7706      /**
7707       * <code>optional string msg = 4;</code>
7708       */
7709      public Builder clearMsg() {
7710        bitField0_ = (bitField0_ & ~0x00000008);
7711        msg_ = getDefaultInstance().getMsg();
7712        onChanged();
7713        return this;
7714      }
7715      /**
7716       * <code>optional string msg = 4;</code>
7717       */
7718      public Builder setMsgBytes(
7719          com.google.protobuf.ByteString value) {
7720        if (value == null) {
7721    throw new NullPointerException();
7722  }
7723  bitField0_ |= 0x00000008;
7724        msg_ = value;
7725        onChanged();
7726        return this;
7727      }
7728
7729      private int severity_ = 0;
7730      /**
7731       * <code>optional .Severity severity = 5;</code>
7732       */
7733      public boolean hasSeverity() {
7734        return ((bitField0_ & 0x00000010) == 0x00000010);
7735      }
7736      /**
7737       * <code>optional .Severity severity = 5;</code>
7738       */
7739      public org.sonar.batch.protocol.Constants.Severity getSeverity() {
7740        org.sonar.batch.protocol.Constants.Severity result = org.sonar.batch.protocol.Constants.Severity.valueOf(severity_);
7741        return result == null ? org.sonar.batch.protocol.Constants.Severity.INFO : result;
7742      }
7743      /**
7744       * <code>optional .Severity severity = 5;</code>
7745       */
7746      public Builder setSeverity(org.sonar.batch.protocol.Constants.Severity value) {
7747        if (value == null) {
7748          throw new NullPointerException();
7749        }
7750        bitField0_ |= 0x00000010;
7751        severity_ = value.getNumber();
7752        onChanged();
7753        return this;
7754      }
7755      /**
7756       * <code>optional .Severity severity = 5;</code>
7757       */
7758      public Builder clearSeverity() {
7759        bitField0_ = (bitField0_ & ~0x00000010);
7760        severity_ = 0;
7761        onChanged();
7762        return this;
7763      }
7764
7765      private double effortToFix_ ;
7766      /**
7767       * <code>optional double effort_to_fix = 6;</code>
7768       */
7769      public boolean hasEffortToFix() {
7770        return ((bitField0_ & 0x00000020) == 0x00000020);
7771      }
7772      /**
7773       * <code>optional double effort_to_fix = 6;</code>
7774       */
7775      public double getEffortToFix() {
7776        return effortToFix_;
7777      }
7778      /**
7779       * <code>optional double effort_to_fix = 6;</code>
7780       */
7781      public Builder setEffortToFix(double value) {
7782        bitField0_ |= 0x00000020;
7783        effortToFix_ = value;
7784        onChanged();
7785        return this;
7786      }
7787      /**
7788       * <code>optional double effort_to_fix = 6;</code>
7789       */
7790      public Builder clearEffortToFix() {
7791        bitField0_ = (bitField0_ & ~0x00000020);
7792        effortToFix_ = 0D;
7793        onChanged();
7794        return this;
7795      }
7796
7797      private org.sonar.batch.protocol.output.BatchReport.TextRange textRange_ = null;
7798      private com.google.protobuf.SingleFieldBuilder<
7799          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> textRangeBuilder_;
7800      /**
7801       * <code>optional .TextRange text_range = 7;</code>
7802       *
7803       * <pre>
7804       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7805       * </pre>
7806       */
7807      public boolean hasTextRange() {
7808        return ((bitField0_ & 0x00000040) == 0x00000040);
7809      }
7810      /**
7811       * <code>optional .TextRange text_range = 7;</code>
7812       *
7813       * <pre>
7814       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7815       * </pre>
7816       */
7817      public org.sonar.batch.protocol.output.BatchReport.TextRange getTextRange() {
7818        if (textRangeBuilder_ == null) {
7819          return textRange_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
7820        } else {
7821          return textRangeBuilder_.getMessage();
7822        }
7823      }
7824      /**
7825       * <code>optional .TextRange text_range = 7;</code>
7826       *
7827       * <pre>
7828       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7829       * </pre>
7830       */
7831      public Builder setTextRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
7832        if (textRangeBuilder_ == null) {
7833          if (value == null) {
7834            throw new NullPointerException();
7835          }
7836          textRange_ = value;
7837          onChanged();
7838        } else {
7839          textRangeBuilder_.setMessage(value);
7840        }
7841        bitField0_ |= 0x00000040;
7842        return this;
7843      }
7844      /**
7845       * <code>optional .TextRange text_range = 7;</code>
7846       *
7847       * <pre>
7848       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7849       * </pre>
7850       */
7851      public Builder setTextRange(
7852          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
7853        if (textRangeBuilder_ == null) {
7854          textRange_ = builderForValue.build();
7855          onChanged();
7856        } else {
7857          textRangeBuilder_.setMessage(builderForValue.build());
7858        }
7859        bitField0_ |= 0x00000040;
7860        return this;
7861      }
7862      /**
7863       * <code>optional .TextRange text_range = 7;</code>
7864       *
7865       * <pre>
7866       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7867       * </pre>
7868       */
7869      public Builder mergeTextRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
7870        if (textRangeBuilder_ == null) {
7871          if (((bitField0_ & 0x00000040) == 0x00000040) &&
7872              textRange_ != null &&
7873              textRange_ != org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) {
7874            textRange_ =
7875              org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder(textRange_).mergeFrom(value).buildPartial();
7876          } else {
7877            textRange_ = value;
7878          }
7879          onChanged();
7880        } else {
7881          textRangeBuilder_.mergeFrom(value);
7882        }
7883        bitField0_ |= 0x00000040;
7884        return this;
7885      }
7886      /**
7887       * <code>optional .TextRange text_range = 7;</code>
7888       *
7889       * <pre>
7890       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7891       * </pre>
7892       */
7893      public Builder clearTextRange() {
7894        if (textRangeBuilder_ == null) {
7895          textRange_ = null;
7896          onChanged();
7897        } else {
7898          textRangeBuilder_.clear();
7899        }
7900        bitField0_ = (bitField0_ & ~0x00000040);
7901        return this;
7902      }
7903      /**
7904       * <code>optional .TextRange text_range = 7;</code>
7905       *
7906       * <pre>
7907       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7908       * </pre>
7909       */
7910      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getTextRangeBuilder() {
7911        bitField0_ |= 0x00000040;
7912        onChanged();
7913        return getTextRangeFieldBuilder().getBuilder();
7914      }
7915      /**
7916       * <code>optional .TextRange text_range = 7;</code>
7917       *
7918       * <pre>
7919       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7920       * </pre>
7921       */
7922      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getTextRangeOrBuilder() {
7923        if (textRangeBuilder_ != null) {
7924          return textRangeBuilder_.getMessageOrBuilder();
7925        } else {
7926          return textRange_ == null ?
7927              org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
7928        }
7929      }
7930      /**
7931       * <code>optional .TextRange text_range = 7;</code>
7932       *
7933       * <pre>
7934       * Only when issue component is a file. Can also be empty for a file if this is an issue global to the file.
7935       * </pre>
7936       */
7937      private com.google.protobuf.SingleFieldBuilder<
7938          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
7939          getTextRangeFieldBuilder() {
7940        if (textRangeBuilder_ == null) {
7941          textRangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
7942              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
7943                  getTextRange(),
7944                  getParentForChildren(),
7945                  isClean());
7946          textRange_ = null;
7947        }
7948        return textRangeBuilder_;
7949      }
7950
7951      private java.util.List<org.sonar.batch.protocol.output.BatchReport.Flow> flow_ =
7952        java.util.Collections.emptyList();
7953      private void ensureFlowIsMutable() {
7954        if (!((bitField0_ & 0x00000080) == 0x00000080)) {
7955          flow_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.Flow>(flow_);
7956          bitField0_ |= 0x00000080;
7957         }
7958      }
7959
7960      private com.google.protobuf.RepeatedFieldBuilder<
7961          org.sonar.batch.protocol.output.BatchReport.Flow, org.sonar.batch.protocol.output.BatchReport.Flow.Builder, org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder> flowBuilder_;
7962
7963      /**
7964       * <code>repeated .Flow flow = 8;</code>
7965       */
7966      public java.util.List<org.sonar.batch.protocol.output.BatchReport.Flow> getFlowList() {
7967        if (flowBuilder_ == null) {
7968          return java.util.Collections.unmodifiableList(flow_);
7969        } else {
7970          return flowBuilder_.getMessageList();
7971        }
7972      }
7973      /**
7974       * <code>repeated .Flow flow = 8;</code>
7975       */
7976      public int getFlowCount() {
7977        if (flowBuilder_ == null) {
7978          return flow_.size();
7979        } else {
7980          return flowBuilder_.getCount();
7981        }
7982      }
7983      /**
7984       * <code>repeated .Flow flow = 8;</code>
7985       */
7986      public org.sonar.batch.protocol.output.BatchReport.Flow getFlow(int index) {
7987        if (flowBuilder_ == null) {
7988          return flow_.get(index);
7989        } else {
7990          return flowBuilder_.getMessage(index);
7991        }
7992      }
7993      /**
7994       * <code>repeated .Flow flow = 8;</code>
7995       */
7996      public Builder setFlow(
7997          int index, org.sonar.batch.protocol.output.BatchReport.Flow value) {
7998        if (flowBuilder_ == null) {
7999          if (value == null) {
8000            throw new NullPointerException();
8001          }
8002          ensureFlowIsMutable();
8003          flow_.set(index, value);
8004          onChanged();
8005        } else {
8006          flowBuilder_.setMessage(index, value);
8007        }
8008        return this;
8009      }
8010      /**
8011       * <code>repeated .Flow flow = 8;</code>
8012       */
8013      public Builder setFlow(
8014          int index, org.sonar.batch.protocol.output.BatchReport.Flow.Builder builderForValue) {
8015        if (flowBuilder_ == null) {
8016          ensureFlowIsMutable();
8017          flow_.set(index, builderForValue.build());
8018          onChanged();
8019        } else {
8020          flowBuilder_.setMessage(index, builderForValue.build());
8021        }
8022        return this;
8023      }
8024      /**
8025       * <code>repeated .Flow flow = 8;</code>
8026       */
8027      public Builder addFlow(org.sonar.batch.protocol.output.BatchReport.Flow value) {
8028        if (flowBuilder_ == null) {
8029          if (value == null) {
8030            throw new NullPointerException();
8031          }
8032          ensureFlowIsMutable();
8033          flow_.add(value);
8034          onChanged();
8035        } else {
8036          flowBuilder_.addMessage(value);
8037        }
8038        return this;
8039      }
8040      /**
8041       * <code>repeated .Flow flow = 8;</code>
8042       */
8043      public Builder addFlow(
8044          int index, org.sonar.batch.protocol.output.BatchReport.Flow value) {
8045        if (flowBuilder_ == null) {
8046          if (value == null) {
8047            throw new NullPointerException();
8048          }
8049          ensureFlowIsMutable();
8050          flow_.add(index, value);
8051          onChanged();
8052        } else {
8053          flowBuilder_.addMessage(index, value);
8054        }
8055        return this;
8056      }
8057      /**
8058       * <code>repeated .Flow flow = 8;</code>
8059       */
8060      public Builder addFlow(
8061          org.sonar.batch.protocol.output.BatchReport.Flow.Builder builderForValue) {
8062        if (flowBuilder_ == null) {
8063          ensureFlowIsMutable();
8064          flow_.add(builderForValue.build());
8065          onChanged();
8066        } else {
8067          flowBuilder_.addMessage(builderForValue.build());
8068        }
8069        return this;
8070      }
8071      /**
8072       * <code>repeated .Flow flow = 8;</code>
8073       */
8074      public Builder addFlow(
8075          int index, org.sonar.batch.protocol.output.BatchReport.Flow.Builder builderForValue) {
8076        if (flowBuilder_ == null) {
8077          ensureFlowIsMutable();
8078          flow_.add(index, builderForValue.build());
8079          onChanged();
8080        } else {
8081          flowBuilder_.addMessage(index, builderForValue.build());
8082        }
8083        return this;
8084      }
8085      /**
8086       * <code>repeated .Flow flow = 8;</code>
8087       */
8088      public Builder addAllFlow(
8089          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.Flow> values) {
8090        if (flowBuilder_ == null) {
8091          ensureFlowIsMutable();
8092          com.google.protobuf.AbstractMessageLite.Builder.addAll(
8093              values, flow_);
8094          onChanged();
8095        } else {
8096          flowBuilder_.addAllMessages(values);
8097        }
8098        return this;
8099      }
8100      /**
8101       * <code>repeated .Flow flow = 8;</code>
8102       */
8103      public Builder clearFlow() {
8104        if (flowBuilder_ == null) {
8105          flow_ = java.util.Collections.emptyList();
8106          bitField0_ = (bitField0_ & ~0x00000080);
8107          onChanged();
8108        } else {
8109          flowBuilder_.clear();
8110        }
8111        return this;
8112      }
8113      /**
8114       * <code>repeated .Flow flow = 8;</code>
8115       */
8116      public Builder removeFlow(int index) {
8117        if (flowBuilder_ == null) {
8118          ensureFlowIsMutable();
8119          flow_.remove(index);
8120          onChanged();
8121        } else {
8122          flowBuilder_.remove(index);
8123        }
8124        return this;
8125      }
8126      /**
8127       * <code>repeated .Flow flow = 8;</code>
8128       */
8129      public org.sonar.batch.protocol.output.BatchReport.Flow.Builder getFlowBuilder(
8130          int index) {
8131        return getFlowFieldBuilder().getBuilder(index);
8132      }
8133      /**
8134       * <code>repeated .Flow flow = 8;</code>
8135       */
8136      public org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder getFlowOrBuilder(
8137          int index) {
8138        if (flowBuilder_ == null) {
8139          return flow_.get(index);  } else {
8140          return flowBuilder_.getMessageOrBuilder(index);
8141        }
8142      }
8143      /**
8144       * <code>repeated .Flow flow = 8;</code>
8145       */
8146      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder> 
8147           getFlowOrBuilderList() {
8148        if (flowBuilder_ != null) {
8149          return flowBuilder_.getMessageOrBuilderList();
8150        } else {
8151          return java.util.Collections.unmodifiableList(flow_);
8152        }
8153      }
8154      /**
8155       * <code>repeated .Flow flow = 8;</code>
8156       */
8157      public org.sonar.batch.protocol.output.BatchReport.Flow.Builder addFlowBuilder() {
8158        return getFlowFieldBuilder().addBuilder(
8159            org.sonar.batch.protocol.output.BatchReport.Flow.getDefaultInstance());
8160      }
8161      /**
8162       * <code>repeated .Flow flow = 8;</code>
8163       */
8164      public org.sonar.batch.protocol.output.BatchReport.Flow.Builder addFlowBuilder(
8165          int index) {
8166        return getFlowFieldBuilder().addBuilder(
8167            index, org.sonar.batch.protocol.output.BatchReport.Flow.getDefaultInstance());
8168      }
8169      /**
8170       * <code>repeated .Flow flow = 8;</code>
8171       */
8172      public java.util.List<org.sonar.batch.protocol.output.BatchReport.Flow.Builder> 
8173           getFlowBuilderList() {
8174        return getFlowFieldBuilder().getBuilderList();
8175      }
8176      private com.google.protobuf.RepeatedFieldBuilder<
8177          org.sonar.batch.protocol.output.BatchReport.Flow, org.sonar.batch.protocol.output.BatchReport.Flow.Builder, org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder> 
8178          getFlowFieldBuilder() {
8179        if (flowBuilder_ == null) {
8180          flowBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
8181              org.sonar.batch.protocol.output.BatchReport.Flow, org.sonar.batch.protocol.output.BatchReport.Flow.Builder, org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder>(
8182                  flow_,
8183                  ((bitField0_ & 0x00000080) == 0x00000080),
8184                  getParentForChildren(),
8185                  isClean());
8186          flow_ = null;
8187        }
8188        return flowBuilder_;
8189      }
8190
8191      // @@protoc_insertion_point(builder_scope:Issue)
8192    }
8193
8194    // @@protoc_insertion_point(class_scope:Issue)
8195    private static final org.sonar.batch.protocol.output.BatchReport.Issue DEFAULT_INSTANCE;
8196    static {
8197      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Issue();
8198    }
8199
8200    public static org.sonar.batch.protocol.output.BatchReport.Issue getDefaultInstance() {
8201      return DEFAULT_INSTANCE;
8202    }
8203
8204    @java.lang.Deprecated public static final com.google.protobuf.Parser<Issue>
8205        PARSER = new com.google.protobuf.AbstractParser<Issue>() {
8206      public Issue parsePartialFrom(
8207          com.google.protobuf.CodedInputStream input,
8208          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8209          throws com.google.protobuf.InvalidProtocolBufferException {
8210        try {
8211          return new Issue(input, extensionRegistry);
8212        } catch (RuntimeException e) {
8213          if (e.getCause() instanceof
8214              com.google.protobuf.InvalidProtocolBufferException) {
8215            throw (com.google.protobuf.InvalidProtocolBufferException)
8216                e.getCause();
8217          }
8218          throw e;
8219        }
8220      }
8221    };
8222
8223    public static com.google.protobuf.Parser<Issue> parser() {
8224      return PARSER;
8225    }
8226
8227    @java.lang.Override
8228    public com.google.protobuf.Parser<Issue> getParserForType() {
8229      return PARSER;
8230    }
8231
8232    public org.sonar.batch.protocol.output.BatchReport.Issue getDefaultInstanceForType() {
8233      return DEFAULT_INSTANCE;
8234    }
8235
8236  }
8237
8238  public interface IssueLocationOrBuilder extends
8239      // @@protoc_insertion_point(interface_extends:IssueLocation)
8240      com.google.protobuf.MessageOrBuilder {
8241
8242    /**
8243     * <code>optional int32 component_ref = 1;</code>
8244     */
8245    boolean hasComponentRef();
8246    /**
8247     * <code>optional int32 component_ref = 1;</code>
8248     */
8249    int getComponentRef();
8250
8251    /**
8252     * <code>optional .TextRange text_range = 2;</code>
8253     *
8254     * <pre>
8255     * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8256     * </pre>
8257     */
8258    boolean hasTextRange();
8259    /**
8260     * <code>optional .TextRange text_range = 2;</code>
8261     *
8262     * <pre>
8263     * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8264     * </pre>
8265     */
8266    org.sonar.batch.protocol.output.BatchReport.TextRange getTextRange();
8267    /**
8268     * <code>optional .TextRange text_range = 2;</code>
8269     *
8270     * <pre>
8271     * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8272     * </pre>
8273     */
8274    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getTextRangeOrBuilder();
8275
8276    /**
8277     * <code>optional string msg = 3;</code>
8278     */
8279    boolean hasMsg();
8280    /**
8281     * <code>optional string msg = 3;</code>
8282     */
8283    java.lang.String getMsg();
8284    /**
8285     * <code>optional string msg = 3;</code>
8286     */
8287    com.google.protobuf.ByteString
8288        getMsgBytes();
8289  }
8290  /**
8291   * Protobuf type {@code IssueLocation}
8292   */
8293  public  static final class IssueLocation extends
8294      com.google.protobuf.GeneratedMessage implements
8295      // @@protoc_insertion_point(message_implements:IssueLocation)
8296      IssueLocationOrBuilder {
8297    // Use IssueLocation.newBuilder() to construct.
8298    private IssueLocation(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
8299      super(builder);
8300    }
8301    private IssueLocation() {
8302      componentRef_ = 0;
8303      msg_ = "";
8304    }
8305
8306    @java.lang.Override
8307    public final com.google.protobuf.UnknownFieldSet
8308    getUnknownFields() {
8309      return this.unknownFields;
8310    }
8311    private IssueLocation(
8312        com.google.protobuf.CodedInputStream input,
8313        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
8314      this();
8315      int mutable_bitField0_ = 0;
8316      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
8317          com.google.protobuf.UnknownFieldSet.newBuilder();
8318      try {
8319        boolean done = false;
8320        while (!done) {
8321          int tag = input.readTag();
8322          switch (tag) {
8323            case 0:
8324              done = true;
8325              break;
8326            default: {
8327              if (!parseUnknownField(input, unknownFields,
8328                                     extensionRegistry, tag)) {
8329                done = true;
8330              }
8331              break;
8332            }
8333            case 8: {
8334              bitField0_ |= 0x00000001;
8335              componentRef_ = input.readInt32();
8336              break;
8337            }
8338            case 18: {
8339              org.sonar.batch.protocol.output.BatchReport.TextRange.Builder subBuilder = null;
8340              if (((bitField0_ & 0x00000002) == 0x00000002)) {
8341                subBuilder = textRange_.toBuilder();
8342              }
8343              textRange_ = input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.parser(), extensionRegistry);
8344              if (subBuilder != null) {
8345                subBuilder.mergeFrom(textRange_);
8346                textRange_ = subBuilder.buildPartial();
8347              }
8348              bitField0_ |= 0x00000002;
8349              break;
8350            }
8351            case 26: {
8352              com.google.protobuf.ByteString bs = input.readBytes();
8353              bitField0_ |= 0x00000004;
8354              msg_ = bs;
8355              break;
8356            }
8357          }
8358        }
8359      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8360        throw new RuntimeException(e.setUnfinishedMessage(this));
8361      } catch (java.io.IOException e) {
8362        throw new RuntimeException(
8363            new com.google.protobuf.InvalidProtocolBufferException(
8364                e.getMessage()).setUnfinishedMessage(this));
8365      } finally {
8366        this.unknownFields = unknownFields.build();
8367        makeExtensionsImmutable();
8368      }
8369    }
8370    public static final com.google.protobuf.Descriptors.Descriptor
8371        getDescriptor() {
8372      return org.sonar.batch.protocol.output.BatchReport.internal_static_IssueLocation_descriptor;
8373    }
8374
8375    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
8376        internalGetFieldAccessorTable() {
8377      return org.sonar.batch.protocol.output.BatchReport.internal_static_IssueLocation_fieldAccessorTable
8378          .ensureFieldAccessorsInitialized(
8379              org.sonar.batch.protocol.output.BatchReport.IssueLocation.class, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder.class);
8380    }
8381
8382    private int bitField0_;
8383    public static final int COMPONENT_REF_FIELD_NUMBER = 1;
8384    private int componentRef_;
8385    /**
8386     * <code>optional int32 component_ref = 1;</code>
8387     */
8388    public boolean hasComponentRef() {
8389      return ((bitField0_ & 0x00000001) == 0x00000001);
8390    }
8391    /**
8392     * <code>optional int32 component_ref = 1;</code>
8393     */
8394    public int getComponentRef() {
8395      return componentRef_;
8396    }
8397
8398    public static final int TEXT_RANGE_FIELD_NUMBER = 2;
8399    private org.sonar.batch.protocol.output.BatchReport.TextRange textRange_;
8400    /**
8401     * <code>optional .TextRange text_range = 2;</code>
8402     *
8403     * <pre>
8404     * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8405     * </pre>
8406     */
8407    public boolean hasTextRange() {
8408      return ((bitField0_ & 0x00000002) == 0x00000002);
8409    }
8410    /**
8411     * <code>optional .TextRange text_range = 2;</code>
8412     *
8413     * <pre>
8414     * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8415     * </pre>
8416     */
8417    public org.sonar.batch.protocol.output.BatchReport.TextRange getTextRange() {
8418      return textRange_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
8419    }
8420    /**
8421     * <code>optional .TextRange text_range = 2;</code>
8422     *
8423     * <pre>
8424     * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8425     * </pre>
8426     */
8427    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getTextRangeOrBuilder() {
8428      return textRange_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
8429    }
8430
8431    public static final int MSG_FIELD_NUMBER = 3;
8432    private volatile java.lang.Object msg_;
8433    /**
8434     * <code>optional string msg = 3;</code>
8435     */
8436    public boolean hasMsg() {
8437      return ((bitField0_ & 0x00000004) == 0x00000004);
8438    }
8439    /**
8440     * <code>optional string msg = 3;</code>
8441     */
8442    public java.lang.String getMsg() {
8443      java.lang.Object ref = msg_;
8444      if (ref instanceof java.lang.String) {
8445        return (java.lang.String) ref;
8446      } else {
8447        com.google.protobuf.ByteString bs = 
8448            (com.google.protobuf.ByteString) ref;
8449        java.lang.String s = bs.toStringUtf8();
8450        if (bs.isValidUtf8()) {
8451          msg_ = s;
8452        }
8453        return s;
8454      }
8455    }
8456    /**
8457     * <code>optional string msg = 3;</code>
8458     */
8459    public com.google.protobuf.ByteString
8460        getMsgBytes() {
8461      java.lang.Object ref = msg_;
8462      if (ref instanceof java.lang.String) {
8463        com.google.protobuf.ByteString b = 
8464            com.google.protobuf.ByteString.copyFromUtf8(
8465                (java.lang.String) ref);
8466        msg_ = b;
8467        return b;
8468      } else {
8469        return (com.google.protobuf.ByteString) ref;
8470      }
8471    }
8472
8473    private byte memoizedIsInitialized = -1;
8474    public final boolean isInitialized() {
8475      byte isInitialized = memoizedIsInitialized;
8476      if (isInitialized == 1) return true;
8477      if (isInitialized == 0) return false;
8478
8479      memoizedIsInitialized = 1;
8480      return true;
8481    }
8482
8483    public void writeTo(com.google.protobuf.CodedOutputStream output)
8484                        throws java.io.IOException {
8485      if (((bitField0_ & 0x00000001) == 0x00000001)) {
8486        output.writeInt32(1, componentRef_);
8487      }
8488      if (((bitField0_ & 0x00000002) == 0x00000002)) {
8489        output.writeMessage(2, getTextRange());
8490      }
8491      if (((bitField0_ & 0x00000004) == 0x00000004)) {
8492        com.google.protobuf.GeneratedMessage.writeString(output, 3, msg_);
8493      }
8494      unknownFields.writeTo(output);
8495    }
8496
8497    public int getSerializedSize() {
8498      int size = memoizedSize;
8499      if (size != -1) return size;
8500
8501      size = 0;
8502      if (((bitField0_ & 0x00000001) == 0x00000001)) {
8503        size += com.google.protobuf.CodedOutputStream
8504          .computeInt32Size(1, componentRef_);
8505      }
8506      if (((bitField0_ & 0x00000002) == 0x00000002)) {
8507        size += com.google.protobuf.CodedOutputStream
8508          .computeMessageSize(2, getTextRange());
8509      }
8510      if (((bitField0_ & 0x00000004) == 0x00000004)) {
8511        size += com.google.protobuf.GeneratedMessage.computeStringSize(3, msg_);
8512      }
8513      size += unknownFields.getSerializedSize();
8514      memoizedSize = size;
8515      return size;
8516    }
8517
8518    private static final long serialVersionUID = 0L;
8519    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(
8520        com.google.protobuf.ByteString data)
8521        throws com.google.protobuf.InvalidProtocolBufferException {
8522      return PARSER.parseFrom(data);
8523    }
8524    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(
8525        com.google.protobuf.ByteString data,
8526        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8527        throws com.google.protobuf.InvalidProtocolBufferException {
8528      return PARSER.parseFrom(data, extensionRegistry);
8529    }
8530    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(byte[] data)
8531        throws com.google.protobuf.InvalidProtocolBufferException {
8532      return PARSER.parseFrom(data);
8533    }
8534    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(
8535        byte[] data,
8536        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8537        throws com.google.protobuf.InvalidProtocolBufferException {
8538      return PARSER.parseFrom(data, extensionRegistry);
8539    }
8540    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(java.io.InputStream input)
8541        throws java.io.IOException {
8542      return PARSER.parseFrom(input);
8543    }
8544    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(
8545        java.io.InputStream input,
8546        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8547        throws java.io.IOException {
8548      return PARSER.parseFrom(input, extensionRegistry);
8549    }
8550    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseDelimitedFrom(java.io.InputStream input)
8551        throws java.io.IOException {
8552      return PARSER.parseDelimitedFrom(input);
8553    }
8554    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseDelimitedFrom(
8555        java.io.InputStream input,
8556        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8557        throws java.io.IOException {
8558      return PARSER.parseDelimitedFrom(input, extensionRegistry);
8559    }
8560    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(
8561        com.google.protobuf.CodedInputStream input)
8562        throws java.io.IOException {
8563      return PARSER.parseFrom(input);
8564    }
8565    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation parseFrom(
8566        com.google.protobuf.CodedInputStream input,
8567        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8568        throws java.io.IOException {
8569      return PARSER.parseFrom(input, extensionRegistry);
8570    }
8571
8572    public Builder newBuilderForType() { return newBuilder(); }
8573    public static Builder newBuilder() {
8574      return DEFAULT_INSTANCE.toBuilder();
8575    }
8576    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.IssueLocation prototype) {
8577      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
8578    }
8579    public Builder toBuilder() {
8580      return this == DEFAULT_INSTANCE
8581          ? new Builder() : new Builder().mergeFrom(this);
8582    }
8583
8584    @java.lang.Override
8585    protected Builder newBuilderForType(
8586        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
8587      Builder builder = new Builder(parent);
8588      return builder;
8589    }
8590    /**
8591     * Protobuf type {@code IssueLocation}
8592     */
8593    public static final class Builder extends
8594        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
8595        // @@protoc_insertion_point(builder_implements:IssueLocation)
8596        org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder {
8597      public static final com.google.protobuf.Descriptors.Descriptor
8598          getDescriptor() {
8599        return org.sonar.batch.protocol.output.BatchReport.internal_static_IssueLocation_descriptor;
8600      }
8601
8602      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
8603          internalGetFieldAccessorTable() {
8604        return org.sonar.batch.protocol.output.BatchReport.internal_static_IssueLocation_fieldAccessorTable
8605            .ensureFieldAccessorsInitialized(
8606                org.sonar.batch.protocol.output.BatchReport.IssueLocation.class, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder.class);
8607      }
8608
8609      // Construct using org.sonar.batch.protocol.output.BatchReport.IssueLocation.newBuilder()
8610      private Builder() {
8611        maybeForceBuilderInitialization();
8612      }
8613
8614      private Builder(
8615          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
8616        super(parent);
8617        maybeForceBuilderInitialization();
8618      }
8619      private void maybeForceBuilderInitialization() {
8620        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
8621          getTextRangeFieldBuilder();
8622        }
8623      }
8624      public Builder clear() {
8625        super.clear();
8626        componentRef_ = 0;
8627        bitField0_ = (bitField0_ & ~0x00000001);
8628        if (textRangeBuilder_ == null) {
8629          textRange_ = null;
8630        } else {
8631          textRangeBuilder_.clear();
8632        }
8633        bitField0_ = (bitField0_ & ~0x00000002);
8634        msg_ = "";
8635        bitField0_ = (bitField0_ & ~0x00000004);
8636        return this;
8637      }
8638
8639      public com.google.protobuf.Descriptors.Descriptor
8640          getDescriptorForType() {
8641        return org.sonar.batch.protocol.output.BatchReport.internal_static_IssueLocation_descriptor;
8642      }
8643
8644      public org.sonar.batch.protocol.output.BatchReport.IssueLocation getDefaultInstanceForType() {
8645        return org.sonar.batch.protocol.output.BatchReport.IssueLocation.getDefaultInstance();
8646      }
8647
8648      public org.sonar.batch.protocol.output.BatchReport.IssueLocation build() {
8649        org.sonar.batch.protocol.output.BatchReport.IssueLocation result = buildPartial();
8650        if (!result.isInitialized()) {
8651          throw newUninitializedMessageException(result);
8652        }
8653        return result;
8654      }
8655
8656      public org.sonar.batch.protocol.output.BatchReport.IssueLocation buildPartial() {
8657        org.sonar.batch.protocol.output.BatchReport.IssueLocation result = new org.sonar.batch.protocol.output.BatchReport.IssueLocation(this);
8658        int from_bitField0_ = bitField0_;
8659        int to_bitField0_ = 0;
8660        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
8661          to_bitField0_ |= 0x00000001;
8662        }
8663        result.componentRef_ = componentRef_;
8664        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
8665          to_bitField0_ |= 0x00000002;
8666        }
8667        if (textRangeBuilder_ == null) {
8668          result.textRange_ = textRange_;
8669        } else {
8670          result.textRange_ = textRangeBuilder_.build();
8671        }
8672        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
8673          to_bitField0_ |= 0x00000004;
8674        }
8675        result.msg_ = msg_;
8676        result.bitField0_ = to_bitField0_;
8677        onBuilt();
8678        return result;
8679      }
8680
8681      public Builder mergeFrom(com.google.protobuf.Message other) {
8682        if (other instanceof org.sonar.batch.protocol.output.BatchReport.IssueLocation) {
8683          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.IssueLocation)other);
8684        } else {
8685          super.mergeFrom(other);
8686          return this;
8687        }
8688      }
8689
8690      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.IssueLocation other) {
8691        if (other == org.sonar.batch.protocol.output.BatchReport.IssueLocation.getDefaultInstance()) return this;
8692        if (other.hasComponentRef()) {
8693          setComponentRef(other.getComponentRef());
8694        }
8695        if (other.hasTextRange()) {
8696          mergeTextRange(other.getTextRange());
8697        }
8698        if (other.hasMsg()) {
8699          bitField0_ |= 0x00000004;
8700          msg_ = other.msg_;
8701          onChanged();
8702        }
8703        this.mergeUnknownFields(other.unknownFields);
8704        onChanged();
8705        return this;
8706      }
8707
8708      public final boolean isInitialized() {
8709        return true;
8710      }
8711
8712      public Builder mergeFrom(
8713          com.google.protobuf.CodedInputStream input,
8714          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
8715          throws java.io.IOException {
8716        org.sonar.batch.protocol.output.BatchReport.IssueLocation parsedMessage = null;
8717        try {
8718          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
8719        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
8720          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.IssueLocation) e.getUnfinishedMessage();
8721          throw e;
8722        } finally {
8723          if (parsedMessage != null) {
8724            mergeFrom(parsedMessage);
8725          }
8726        }
8727        return this;
8728      }
8729      private int bitField0_;
8730
8731      private int componentRef_ ;
8732      /**
8733       * <code>optional int32 component_ref = 1;</code>
8734       */
8735      public boolean hasComponentRef() {
8736        return ((bitField0_ & 0x00000001) == 0x00000001);
8737      }
8738      /**
8739       * <code>optional int32 component_ref = 1;</code>
8740       */
8741      public int getComponentRef() {
8742        return componentRef_;
8743      }
8744      /**
8745       * <code>optional int32 component_ref = 1;</code>
8746       */
8747      public Builder setComponentRef(int value) {
8748        bitField0_ |= 0x00000001;
8749        componentRef_ = value;
8750        onChanged();
8751        return this;
8752      }
8753      /**
8754       * <code>optional int32 component_ref = 1;</code>
8755       */
8756      public Builder clearComponentRef() {
8757        bitField0_ = (bitField0_ & ~0x00000001);
8758        componentRef_ = 0;
8759        onChanged();
8760        return this;
8761      }
8762
8763      private org.sonar.batch.protocol.output.BatchReport.TextRange textRange_ = null;
8764      private com.google.protobuf.SingleFieldBuilder<
8765          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> textRangeBuilder_;
8766      /**
8767       * <code>optional .TextRange text_range = 2;</code>
8768       *
8769       * <pre>
8770       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8771       * </pre>
8772       */
8773      public boolean hasTextRange() {
8774        return ((bitField0_ & 0x00000002) == 0x00000002);
8775      }
8776      /**
8777       * <code>optional .TextRange text_range = 2;</code>
8778       *
8779       * <pre>
8780       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8781       * </pre>
8782       */
8783      public org.sonar.batch.protocol.output.BatchReport.TextRange getTextRange() {
8784        if (textRangeBuilder_ == null) {
8785          return textRange_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
8786        } else {
8787          return textRangeBuilder_.getMessage();
8788        }
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 Builder setTextRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
8798        if (textRangeBuilder_ == null) {
8799          if (value == null) {
8800            throw new NullPointerException();
8801          }
8802          textRange_ = value;
8803          onChanged();
8804        } else {
8805          textRangeBuilder_.setMessage(value);
8806        }
8807        bitField0_ |= 0x00000002;
8808        return this;
8809      }
8810      /**
8811       * <code>optional .TextRange text_range = 2;</code>
8812       *
8813       * <pre>
8814       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8815       * </pre>
8816       */
8817      public Builder setTextRange(
8818          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
8819        if (textRangeBuilder_ == null) {
8820          textRange_ = builderForValue.build();
8821          onChanged();
8822        } else {
8823          textRangeBuilder_.setMessage(builderForValue.build());
8824        }
8825        bitField0_ |= 0x00000002;
8826        return this;
8827      }
8828      /**
8829       * <code>optional .TextRange text_range = 2;</code>
8830       *
8831       * <pre>
8832       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8833       * </pre>
8834       */
8835      public Builder mergeTextRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
8836        if (textRangeBuilder_ == null) {
8837          if (((bitField0_ & 0x00000002) == 0x00000002) &&
8838              textRange_ != null &&
8839              textRange_ != org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) {
8840            textRange_ =
8841              org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder(textRange_).mergeFrom(value).buildPartial();
8842          } else {
8843            textRange_ = value;
8844          }
8845          onChanged();
8846        } else {
8847          textRangeBuilder_.mergeFrom(value);
8848        }
8849        bitField0_ |= 0x00000002;
8850        return this;
8851      }
8852      /**
8853       * <code>optional .TextRange text_range = 2;</code>
8854       *
8855       * <pre>
8856       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8857       * </pre>
8858       */
8859      public Builder clearTextRange() {
8860        if (textRangeBuilder_ == null) {
8861          textRange_ = null;
8862          onChanged();
8863        } else {
8864          textRangeBuilder_.clear();
8865        }
8866        bitField0_ = (bitField0_ & ~0x00000002);
8867        return this;
8868      }
8869      /**
8870       * <code>optional .TextRange text_range = 2;</code>
8871       *
8872       * <pre>
8873       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8874       * </pre>
8875       */
8876      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getTextRangeBuilder() {
8877        bitField0_ |= 0x00000002;
8878        onChanged();
8879        return getTextRangeFieldBuilder().getBuilder();
8880      }
8881      /**
8882       * <code>optional .TextRange text_range = 2;</code>
8883       *
8884       * <pre>
8885       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8886       * </pre>
8887       */
8888      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getTextRangeOrBuilder() {
8889        if (textRangeBuilder_ != null) {
8890          return textRangeBuilder_.getMessageOrBuilder();
8891        } else {
8892          return textRange_ == null ?
8893              org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : textRange_;
8894        }
8895      }
8896      /**
8897       * <code>optional .TextRange text_range = 2;</code>
8898       *
8899       * <pre>
8900       * Only when component is a file. Can be empty for a file if this is an issue global to the file.
8901       * </pre>
8902       */
8903      private com.google.protobuf.SingleFieldBuilder<
8904          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
8905          getTextRangeFieldBuilder() {
8906        if (textRangeBuilder_ == null) {
8907          textRangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
8908              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
8909                  getTextRange(),
8910                  getParentForChildren(),
8911                  isClean());
8912          textRange_ = null;
8913        }
8914        return textRangeBuilder_;
8915      }
8916
8917      private java.lang.Object msg_ = "";
8918      /**
8919       * <code>optional string msg = 3;</code>
8920       */
8921      public boolean hasMsg() {
8922        return ((bitField0_ & 0x00000004) == 0x00000004);
8923      }
8924      /**
8925       * <code>optional string msg = 3;</code>
8926       */
8927      public java.lang.String getMsg() {
8928        java.lang.Object ref = msg_;
8929        if (!(ref instanceof java.lang.String)) {
8930          com.google.protobuf.ByteString bs =
8931              (com.google.protobuf.ByteString) ref;
8932          java.lang.String s = bs.toStringUtf8();
8933          if (bs.isValidUtf8()) {
8934            msg_ = s;
8935          }
8936          return s;
8937        } else {
8938          return (java.lang.String) ref;
8939        }
8940      }
8941      /**
8942       * <code>optional string msg = 3;</code>
8943       */
8944      public com.google.protobuf.ByteString
8945          getMsgBytes() {
8946        java.lang.Object ref = msg_;
8947        if (ref instanceof String) {
8948          com.google.protobuf.ByteString b = 
8949              com.google.protobuf.ByteString.copyFromUtf8(
8950                  (java.lang.String) ref);
8951          msg_ = b;
8952          return b;
8953        } else {
8954          return (com.google.protobuf.ByteString) ref;
8955        }
8956      }
8957      /**
8958       * <code>optional string msg = 3;</code>
8959       */
8960      public Builder setMsg(
8961          java.lang.String value) {
8962        if (value == null) {
8963    throw new NullPointerException();
8964  }
8965  bitField0_ |= 0x00000004;
8966        msg_ = value;
8967        onChanged();
8968        return this;
8969      }
8970      /**
8971       * <code>optional string msg = 3;</code>
8972       */
8973      public Builder clearMsg() {
8974        bitField0_ = (bitField0_ & ~0x00000004);
8975        msg_ = getDefaultInstance().getMsg();
8976        onChanged();
8977        return this;
8978      }
8979      /**
8980       * <code>optional string msg = 3;</code>
8981       */
8982      public Builder setMsgBytes(
8983          com.google.protobuf.ByteString value) {
8984        if (value == null) {
8985    throw new NullPointerException();
8986  }
8987  bitField0_ |= 0x00000004;
8988        msg_ = value;
8989        onChanged();
8990        return this;
8991      }
8992
8993      // @@protoc_insertion_point(builder_scope:IssueLocation)
8994    }
8995
8996    // @@protoc_insertion_point(class_scope:IssueLocation)
8997    private static final org.sonar.batch.protocol.output.BatchReport.IssueLocation DEFAULT_INSTANCE;
8998    static {
8999      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.IssueLocation();
9000    }
9001
9002    public static org.sonar.batch.protocol.output.BatchReport.IssueLocation getDefaultInstance() {
9003      return DEFAULT_INSTANCE;
9004    }
9005
9006    @java.lang.Deprecated public static final com.google.protobuf.Parser<IssueLocation>
9007        PARSER = new com.google.protobuf.AbstractParser<IssueLocation>() {
9008      public IssueLocation parsePartialFrom(
9009          com.google.protobuf.CodedInputStream input,
9010          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9011          throws com.google.protobuf.InvalidProtocolBufferException {
9012        try {
9013          return new IssueLocation(input, extensionRegistry);
9014        } catch (RuntimeException e) {
9015          if (e.getCause() instanceof
9016              com.google.protobuf.InvalidProtocolBufferException) {
9017            throw (com.google.protobuf.InvalidProtocolBufferException)
9018                e.getCause();
9019          }
9020          throw e;
9021        }
9022      }
9023    };
9024
9025    public static com.google.protobuf.Parser<IssueLocation> parser() {
9026      return PARSER;
9027    }
9028
9029    @java.lang.Override
9030    public com.google.protobuf.Parser<IssueLocation> getParserForType() {
9031      return PARSER;
9032    }
9033
9034    public org.sonar.batch.protocol.output.BatchReport.IssueLocation getDefaultInstanceForType() {
9035      return DEFAULT_INSTANCE;
9036    }
9037
9038  }
9039
9040  public interface FlowOrBuilder extends
9041      // @@protoc_insertion_point(interface_extends:Flow)
9042      com.google.protobuf.MessageOrBuilder {
9043
9044    /**
9045     * <code>repeated .IssueLocation location = 1;</code>
9046     */
9047    java.util.List<org.sonar.batch.protocol.output.BatchReport.IssueLocation> 
9048        getLocationList();
9049    /**
9050     * <code>repeated .IssueLocation location = 1;</code>
9051     */
9052    org.sonar.batch.protocol.output.BatchReport.IssueLocation getLocation(int index);
9053    /**
9054     * <code>repeated .IssueLocation location = 1;</code>
9055     */
9056    int getLocationCount();
9057    /**
9058     * <code>repeated .IssueLocation location = 1;</code>
9059     */
9060    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder> 
9061        getLocationOrBuilderList();
9062    /**
9063     * <code>repeated .IssueLocation location = 1;</code>
9064     */
9065    org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder getLocationOrBuilder(
9066        int index);
9067  }
9068  /**
9069   * Protobuf type {@code Flow}
9070   */
9071  public  static final class Flow extends
9072      com.google.protobuf.GeneratedMessage implements
9073      // @@protoc_insertion_point(message_implements:Flow)
9074      FlowOrBuilder {
9075    // Use Flow.newBuilder() to construct.
9076    private Flow(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
9077      super(builder);
9078    }
9079    private Flow() {
9080      location_ = java.util.Collections.emptyList();
9081    }
9082
9083    @java.lang.Override
9084    public final com.google.protobuf.UnknownFieldSet
9085    getUnknownFields() {
9086      return this.unknownFields;
9087    }
9088    private Flow(
9089        com.google.protobuf.CodedInputStream input,
9090        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
9091      this();
9092      int mutable_bitField0_ = 0;
9093      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
9094          com.google.protobuf.UnknownFieldSet.newBuilder();
9095      try {
9096        boolean done = false;
9097        while (!done) {
9098          int tag = input.readTag();
9099          switch (tag) {
9100            case 0:
9101              done = true;
9102              break;
9103            default: {
9104              if (!parseUnknownField(input, unknownFields,
9105                                     extensionRegistry, tag)) {
9106                done = true;
9107              }
9108              break;
9109            }
9110            case 10: {
9111              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
9112                location_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.IssueLocation>();
9113                mutable_bitField0_ |= 0x00000001;
9114              }
9115              location_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.IssueLocation.parser(), extensionRegistry));
9116              break;
9117            }
9118          }
9119        }
9120      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9121        throw new RuntimeException(e.setUnfinishedMessage(this));
9122      } catch (java.io.IOException e) {
9123        throw new RuntimeException(
9124            new com.google.protobuf.InvalidProtocolBufferException(
9125                e.getMessage()).setUnfinishedMessage(this));
9126      } finally {
9127        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
9128          location_ = java.util.Collections.unmodifiableList(location_);
9129        }
9130        this.unknownFields = unknownFields.build();
9131        makeExtensionsImmutable();
9132      }
9133    }
9134    public static final com.google.protobuf.Descriptors.Descriptor
9135        getDescriptor() {
9136      return org.sonar.batch.protocol.output.BatchReport.internal_static_Flow_descriptor;
9137    }
9138
9139    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
9140        internalGetFieldAccessorTable() {
9141      return org.sonar.batch.protocol.output.BatchReport.internal_static_Flow_fieldAccessorTable
9142          .ensureFieldAccessorsInitialized(
9143              org.sonar.batch.protocol.output.BatchReport.Flow.class, org.sonar.batch.protocol.output.BatchReport.Flow.Builder.class);
9144    }
9145
9146    public static final int LOCATION_FIELD_NUMBER = 1;
9147    private java.util.List<org.sonar.batch.protocol.output.BatchReport.IssueLocation> location_;
9148    /**
9149     * <code>repeated .IssueLocation location = 1;</code>
9150     */
9151    public java.util.List<org.sonar.batch.protocol.output.BatchReport.IssueLocation> getLocationList() {
9152      return location_;
9153    }
9154    /**
9155     * <code>repeated .IssueLocation location = 1;</code>
9156     */
9157    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder> 
9158        getLocationOrBuilderList() {
9159      return location_;
9160    }
9161    /**
9162     * <code>repeated .IssueLocation location = 1;</code>
9163     */
9164    public int getLocationCount() {
9165      return location_.size();
9166    }
9167    /**
9168     * <code>repeated .IssueLocation location = 1;</code>
9169     */
9170    public org.sonar.batch.protocol.output.BatchReport.IssueLocation getLocation(int index) {
9171      return location_.get(index);
9172    }
9173    /**
9174     * <code>repeated .IssueLocation location = 1;</code>
9175     */
9176    public org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder getLocationOrBuilder(
9177        int index) {
9178      return location_.get(index);
9179    }
9180
9181    private byte memoizedIsInitialized = -1;
9182    public final boolean isInitialized() {
9183      byte isInitialized = memoizedIsInitialized;
9184      if (isInitialized == 1) return true;
9185      if (isInitialized == 0) return false;
9186
9187      memoizedIsInitialized = 1;
9188      return true;
9189    }
9190
9191    public void writeTo(com.google.protobuf.CodedOutputStream output)
9192                        throws java.io.IOException {
9193      for (int i = 0; i < location_.size(); i++) {
9194        output.writeMessage(1, location_.get(i));
9195      }
9196      unknownFields.writeTo(output);
9197    }
9198
9199    public int getSerializedSize() {
9200      int size = memoizedSize;
9201      if (size != -1) return size;
9202
9203      size = 0;
9204      for (int i = 0; i < location_.size(); i++) {
9205        size += com.google.protobuf.CodedOutputStream
9206          .computeMessageSize(1, location_.get(i));
9207      }
9208      size += unknownFields.getSerializedSize();
9209      memoizedSize = size;
9210      return size;
9211    }
9212
9213    private static final long serialVersionUID = 0L;
9214    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(
9215        com.google.protobuf.ByteString data)
9216        throws com.google.protobuf.InvalidProtocolBufferException {
9217      return PARSER.parseFrom(data);
9218    }
9219    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(
9220        com.google.protobuf.ByteString data,
9221        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9222        throws com.google.protobuf.InvalidProtocolBufferException {
9223      return PARSER.parseFrom(data, extensionRegistry);
9224    }
9225    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(byte[] data)
9226        throws com.google.protobuf.InvalidProtocolBufferException {
9227      return PARSER.parseFrom(data);
9228    }
9229    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(
9230        byte[] data,
9231        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9232        throws com.google.protobuf.InvalidProtocolBufferException {
9233      return PARSER.parseFrom(data, extensionRegistry);
9234    }
9235    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(java.io.InputStream input)
9236        throws java.io.IOException {
9237      return PARSER.parseFrom(input);
9238    }
9239    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(
9240        java.io.InputStream input,
9241        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9242        throws java.io.IOException {
9243      return PARSER.parseFrom(input, extensionRegistry);
9244    }
9245    public static org.sonar.batch.protocol.output.BatchReport.Flow parseDelimitedFrom(java.io.InputStream input)
9246        throws java.io.IOException {
9247      return PARSER.parseDelimitedFrom(input);
9248    }
9249    public static org.sonar.batch.protocol.output.BatchReport.Flow parseDelimitedFrom(
9250        java.io.InputStream input,
9251        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9252        throws java.io.IOException {
9253      return PARSER.parseDelimitedFrom(input, extensionRegistry);
9254    }
9255    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(
9256        com.google.protobuf.CodedInputStream input)
9257        throws java.io.IOException {
9258      return PARSER.parseFrom(input);
9259    }
9260    public static org.sonar.batch.protocol.output.BatchReport.Flow parseFrom(
9261        com.google.protobuf.CodedInputStream input,
9262        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9263        throws java.io.IOException {
9264      return PARSER.parseFrom(input, extensionRegistry);
9265    }
9266
9267    public Builder newBuilderForType() { return newBuilder(); }
9268    public static Builder newBuilder() {
9269      return DEFAULT_INSTANCE.toBuilder();
9270    }
9271    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Flow prototype) {
9272      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
9273    }
9274    public Builder toBuilder() {
9275      return this == DEFAULT_INSTANCE
9276          ? new Builder() : new Builder().mergeFrom(this);
9277    }
9278
9279    @java.lang.Override
9280    protected Builder newBuilderForType(
9281        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
9282      Builder builder = new Builder(parent);
9283      return builder;
9284    }
9285    /**
9286     * Protobuf type {@code Flow}
9287     */
9288    public static final class Builder extends
9289        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
9290        // @@protoc_insertion_point(builder_implements:Flow)
9291        org.sonar.batch.protocol.output.BatchReport.FlowOrBuilder {
9292      public static final com.google.protobuf.Descriptors.Descriptor
9293          getDescriptor() {
9294        return org.sonar.batch.protocol.output.BatchReport.internal_static_Flow_descriptor;
9295      }
9296
9297      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
9298          internalGetFieldAccessorTable() {
9299        return org.sonar.batch.protocol.output.BatchReport.internal_static_Flow_fieldAccessorTable
9300            .ensureFieldAccessorsInitialized(
9301                org.sonar.batch.protocol.output.BatchReport.Flow.class, org.sonar.batch.protocol.output.BatchReport.Flow.Builder.class);
9302      }
9303
9304      // Construct using org.sonar.batch.protocol.output.BatchReport.Flow.newBuilder()
9305      private Builder() {
9306        maybeForceBuilderInitialization();
9307      }
9308
9309      private Builder(
9310          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
9311        super(parent);
9312        maybeForceBuilderInitialization();
9313      }
9314      private void maybeForceBuilderInitialization() {
9315        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
9316          getLocationFieldBuilder();
9317        }
9318      }
9319      public Builder clear() {
9320        super.clear();
9321        if (locationBuilder_ == null) {
9322          location_ = java.util.Collections.emptyList();
9323          bitField0_ = (bitField0_ & ~0x00000001);
9324        } else {
9325          locationBuilder_.clear();
9326        }
9327        return this;
9328      }
9329
9330      public com.google.protobuf.Descriptors.Descriptor
9331          getDescriptorForType() {
9332        return org.sonar.batch.protocol.output.BatchReport.internal_static_Flow_descriptor;
9333      }
9334
9335      public org.sonar.batch.protocol.output.BatchReport.Flow getDefaultInstanceForType() {
9336        return org.sonar.batch.protocol.output.BatchReport.Flow.getDefaultInstance();
9337      }
9338
9339      public org.sonar.batch.protocol.output.BatchReport.Flow build() {
9340        org.sonar.batch.protocol.output.BatchReport.Flow result = buildPartial();
9341        if (!result.isInitialized()) {
9342          throw newUninitializedMessageException(result);
9343        }
9344        return result;
9345      }
9346
9347      public org.sonar.batch.protocol.output.BatchReport.Flow buildPartial() {
9348        org.sonar.batch.protocol.output.BatchReport.Flow result = new org.sonar.batch.protocol.output.BatchReport.Flow(this);
9349        int from_bitField0_ = bitField0_;
9350        if (locationBuilder_ == null) {
9351          if (((bitField0_ & 0x00000001) == 0x00000001)) {
9352            location_ = java.util.Collections.unmodifiableList(location_);
9353            bitField0_ = (bitField0_ & ~0x00000001);
9354          }
9355          result.location_ = location_;
9356        } else {
9357          result.location_ = locationBuilder_.build();
9358        }
9359        onBuilt();
9360        return result;
9361      }
9362
9363      public Builder mergeFrom(com.google.protobuf.Message other) {
9364        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Flow) {
9365          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Flow)other);
9366        } else {
9367          super.mergeFrom(other);
9368          return this;
9369        }
9370      }
9371
9372      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Flow other) {
9373        if (other == org.sonar.batch.protocol.output.BatchReport.Flow.getDefaultInstance()) return this;
9374        if (locationBuilder_ == null) {
9375          if (!other.location_.isEmpty()) {
9376            if (location_.isEmpty()) {
9377              location_ = other.location_;
9378              bitField0_ = (bitField0_ & ~0x00000001);
9379            } else {
9380              ensureLocationIsMutable();
9381              location_.addAll(other.location_);
9382            }
9383            onChanged();
9384          }
9385        } else {
9386          if (!other.location_.isEmpty()) {
9387            if (locationBuilder_.isEmpty()) {
9388              locationBuilder_.dispose();
9389              locationBuilder_ = null;
9390              location_ = other.location_;
9391              bitField0_ = (bitField0_ & ~0x00000001);
9392              locationBuilder_ = 
9393                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
9394                   getLocationFieldBuilder() : null;
9395            } else {
9396              locationBuilder_.addAllMessages(other.location_);
9397            }
9398          }
9399        }
9400        this.mergeUnknownFields(other.unknownFields);
9401        onChanged();
9402        return this;
9403      }
9404
9405      public final boolean isInitialized() {
9406        return true;
9407      }
9408
9409      public Builder mergeFrom(
9410          com.google.protobuf.CodedInputStream input,
9411          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9412          throws java.io.IOException {
9413        org.sonar.batch.protocol.output.BatchReport.Flow parsedMessage = null;
9414        try {
9415          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
9416        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9417          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Flow) e.getUnfinishedMessage();
9418          throw e;
9419        } finally {
9420          if (parsedMessage != null) {
9421            mergeFrom(parsedMessage);
9422          }
9423        }
9424        return this;
9425      }
9426      private int bitField0_;
9427
9428      private java.util.List<org.sonar.batch.protocol.output.BatchReport.IssueLocation> location_ =
9429        java.util.Collections.emptyList();
9430      private void ensureLocationIsMutable() {
9431        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
9432          location_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.IssueLocation>(location_);
9433          bitField0_ |= 0x00000001;
9434         }
9435      }
9436
9437      private com.google.protobuf.RepeatedFieldBuilder<
9438          org.sonar.batch.protocol.output.BatchReport.IssueLocation, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder, org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder> locationBuilder_;
9439
9440      /**
9441       * <code>repeated .IssueLocation location = 1;</code>
9442       */
9443      public java.util.List<org.sonar.batch.protocol.output.BatchReport.IssueLocation> getLocationList() {
9444        if (locationBuilder_ == null) {
9445          return java.util.Collections.unmodifiableList(location_);
9446        } else {
9447          return locationBuilder_.getMessageList();
9448        }
9449      }
9450      /**
9451       * <code>repeated .IssueLocation location = 1;</code>
9452       */
9453      public int getLocationCount() {
9454        if (locationBuilder_ == null) {
9455          return location_.size();
9456        } else {
9457          return locationBuilder_.getCount();
9458        }
9459      }
9460      /**
9461       * <code>repeated .IssueLocation location = 1;</code>
9462       */
9463      public org.sonar.batch.protocol.output.BatchReport.IssueLocation getLocation(int index) {
9464        if (locationBuilder_ == null) {
9465          return location_.get(index);
9466        } else {
9467          return locationBuilder_.getMessage(index);
9468        }
9469      }
9470      /**
9471       * <code>repeated .IssueLocation location = 1;</code>
9472       */
9473      public Builder setLocation(
9474          int index, org.sonar.batch.protocol.output.BatchReport.IssueLocation value) {
9475        if (locationBuilder_ == null) {
9476          if (value == null) {
9477            throw new NullPointerException();
9478          }
9479          ensureLocationIsMutable();
9480          location_.set(index, value);
9481          onChanged();
9482        } else {
9483          locationBuilder_.setMessage(index, value);
9484        }
9485        return this;
9486      }
9487      /**
9488       * <code>repeated .IssueLocation location = 1;</code>
9489       */
9490      public Builder setLocation(
9491          int index, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder builderForValue) {
9492        if (locationBuilder_ == null) {
9493          ensureLocationIsMutable();
9494          location_.set(index, builderForValue.build());
9495          onChanged();
9496        } else {
9497          locationBuilder_.setMessage(index, builderForValue.build());
9498        }
9499        return this;
9500      }
9501      /**
9502       * <code>repeated .IssueLocation location = 1;</code>
9503       */
9504      public Builder addLocation(org.sonar.batch.protocol.output.BatchReport.IssueLocation value) {
9505        if (locationBuilder_ == null) {
9506          if (value == null) {
9507            throw new NullPointerException();
9508          }
9509          ensureLocationIsMutable();
9510          location_.add(value);
9511          onChanged();
9512        } else {
9513          locationBuilder_.addMessage(value);
9514        }
9515        return this;
9516      }
9517      /**
9518       * <code>repeated .IssueLocation location = 1;</code>
9519       */
9520      public Builder addLocation(
9521          int index, org.sonar.batch.protocol.output.BatchReport.IssueLocation value) {
9522        if (locationBuilder_ == null) {
9523          if (value == null) {
9524            throw new NullPointerException();
9525          }
9526          ensureLocationIsMutable();
9527          location_.add(index, value);
9528          onChanged();
9529        } else {
9530          locationBuilder_.addMessage(index, value);
9531        }
9532        return this;
9533      }
9534      /**
9535       * <code>repeated .IssueLocation location = 1;</code>
9536       */
9537      public Builder addLocation(
9538          org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder builderForValue) {
9539        if (locationBuilder_ == null) {
9540          ensureLocationIsMutable();
9541          location_.add(builderForValue.build());
9542          onChanged();
9543        } else {
9544          locationBuilder_.addMessage(builderForValue.build());
9545        }
9546        return this;
9547      }
9548      /**
9549       * <code>repeated .IssueLocation location = 1;</code>
9550       */
9551      public Builder addLocation(
9552          int index, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder builderForValue) {
9553        if (locationBuilder_ == null) {
9554          ensureLocationIsMutable();
9555          location_.add(index, builderForValue.build());
9556          onChanged();
9557        } else {
9558          locationBuilder_.addMessage(index, builderForValue.build());
9559        }
9560        return this;
9561      }
9562      /**
9563       * <code>repeated .IssueLocation location = 1;</code>
9564       */
9565      public Builder addAllLocation(
9566          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.IssueLocation> values) {
9567        if (locationBuilder_ == null) {
9568          ensureLocationIsMutable();
9569          com.google.protobuf.AbstractMessageLite.Builder.addAll(
9570              values, location_);
9571          onChanged();
9572        } else {
9573          locationBuilder_.addAllMessages(values);
9574        }
9575        return this;
9576      }
9577      /**
9578       * <code>repeated .IssueLocation location = 1;</code>
9579       */
9580      public Builder clearLocation() {
9581        if (locationBuilder_ == null) {
9582          location_ = java.util.Collections.emptyList();
9583          bitField0_ = (bitField0_ & ~0x00000001);
9584          onChanged();
9585        } else {
9586          locationBuilder_.clear();
9587        }
9588        return this;
9589      }
9590      /**
9591       * <code>repeated .IssueLocation location = 1;</code>
9592       */
9593      public Builder removeLocation(int index) {
9594        if (locationBuilder_ == null) {
9595          ensureLocationIsMutable();
9596          location_.remove(index);
9597          onChanged();
9598        } else {
9599          locationBuilder_.remove(index);
9600        }
9601        return this;
9602      }
9603      /**
9604       * <code>repeated .IssueLocation location = 1;</code>
9605       */
9606      public org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder getLocationBuilder(
9607          int index) {
9608        return getLocationFieldBuilder().getBuilder(index);
9609      }
9610      /**
9611       * <code>repeated .IssueLocation location = 1;</code>
9612       */
9613      public org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder getLocationOrBuilder(
9614          int index) {
9615        if (locationBuilder_ == null) {
9616          return location_.get(index);  } else {
9617          return locationBuilder_.getMessageOrBuilder(index);
9618        }
9619      }
9620      /**
9621       * <code>repeated .IssueLocation location = 1;</code>
9622       */
9623      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder> 
9624           getLocationOrBuilderList() {
9625        if (locationBuilder_ != null) {
9626          return locationBuilder_.getMessageOrBuilderList();
9627        } else {
9628          return java.util.Collections.unmodifiableList(location_);
9629        }
9630      }
9631      /**
9632       * <code>repeated .IssueLocation location = 1;</code>
9633       */
9634      public org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder addLocationBuilder() {
9635        return getLocationFieldBuilder().addBuilder(
9636            org.sonar.batch.protocol.output.BatchReport.IssueLocation.getDefaultInstance());
9637      }
9638      /**
9639       * <code>repeated .IssueLocation location = 1;</code>
9640       */
9641      public org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder addLocationBuilder(
9642          int index) {
9643        return getLocationFieldBuilder().addBuilder(
9644            index, org.sonar.batch.protocol.output.BatchReport.IssueLocation.getDefaultInstance());
9645      }
9646      /**
9647       * <code>repeated .IssueLocation location = 1;</code>
9648       */
9649      public java.util.List<org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder> 
9650           getLocationBuilderList() {
9651        return getLocationFieldBuilder().getBuilderList();
9652      }
9653      private com.google.protobuf.RepeatedFieldBuilder<
9654          org.sonar.batch.protocol.output.BatchReport.IssueLocation, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder, org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder> 
9655          getLocationFieldBuilder() {
9656        if (locationBuilder_ == null) {
9657          locationBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
9658              org.sonar.batch.protocol.output.BatchReport.IssueLocation, org.sonar.batch.protocol.output.BatchReport.IssueLocation.Builder, org.sonar.batch.protocol.output.BatchReport.IssueLocationOrBuilder>(
9659                  location_,
9660                  ((bitField0_ & 0x00000001) == 0x00000001),
9661                  getParentForChildren(),
9662                  isClean());
9663          location_ = null;
9664        }
9665        return locationBuilder_;
9666      }
9667
9668      // @@protoc_insertion_point(builder_scope:Flow)
9669    }
9670
9671    // @@protoc_insertion_point(class_scope:Flow)
9672    private static final org.sonar.batch.protocol.output.BatchReport.Flow DEFAULT_INSTANCE;
9673    static {
9674      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Flow();
9675    }
9676
9677    public static org.sonar.batch.protocol.output.BatchReport.Flow getDefaultInstance() {
9678      return DEFAULT_INSTANCE;
9679    }
9680
9681    @java.lang.Deprecated public static final com.google.protobuf.Parser<Flow>
9682        PARSER = new com.google.protobuf.AbstractParser<Flow>() {
9683      public Flow parsePartialFrom(
9684          com.google.protobuf.CodedInputStream input,
9685          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
9686          throws com.google.protobuf.InvalidProtocolBufferException {
9687        try {
9688          return new Flow(input, extensionRegistry);
9689        } catch (RuntimeException e) {
9690          if (e.getCause() instanceof
9691              com.google.protobuf.InvalidProtocolBufferException) {
9692            throw (com.google.protobuf.InvalidProtocolBufferException)
9693                e.getCause();
9694          }
9695          throw e;
9696        }
9697      }
9698    };
9699
9700    public static com.google.protobuf.Parser<Flow> parser() {
9701      return PARSER;
9702    }
9703
9704    @java.lang.Override
9705    public com.google.protobuf.Parser<Flow> getParserForType() {
9706      return PARSER;
9707    }
9708
9709    public org.sonar.batch.protocol.output.BatchReport.Flow getDefaultInstanceForType() {
9710      return DEFAULT_INSTANCE;
9711    }
9712
9713  }
9714
9715  public interface ChangesetsOrBuilder extends
9716      // @@protoc_insertion_point(interface_extends:Changesets)
9717      com.google.protobuf.MessageOrBuilder {
9718
9719    /**
9720     * <code>optional int32 component_ref = 1;</code>
9721     */
9722    boolean hasComponentRef();
9723    /**
9724     * <code>optional int32 component_ref = 1;</code>
9725     */
9726    int getComponentRef();
9727
9728    /**
9729     * <code>repeated .Changesets.Changeset changeset = 2;</code>
9730     */
9731    java.util.List<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset> 
9732        getChangesetList();
9733    /**
9734     * <code>repeated .Changesets.Changeset changeset = 2;</code>
9735     */
9736    org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset getChangeset(int index);
9737    /**
9738     * <code>repeated .Changesets.Changeset changeset = 2;</code>
9739     */
9740    int getChangesetCount();
9741    /**
9742     * <code>repeated .Changesets.Changeset changeset = 2;</code>
9743     */
9744    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder> 
9745        getChangesetOrBuilderList();
9746    /**
9747     * <code>repeated .Changesets.Changeset changeset = 2;</code>
9748     */
9749    org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder getChangesetOrBuilder(
9750        int index);
9751
9752    /**
9753     * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
9754     *
9755     * <pre>
9756     * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
9757     * </pre>
9758     */
9759    java.util.List<java.lang.Integer> getChangesetIndexByLineList();
9760    /**
9761     * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
9762     *
9763     * <pre>
9764     * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
9765     * </pre>
9766     */
9767    int getChangesetIndexByLineCount();
9768    /**
9769     * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
9770     *
9771     * <pre>
9772     * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
9773     * </pre>
9774     */
9775    int getChangesetIndexByLine(int index);
9776  }
9777  /**
9778   * Protobuf type {@code Changesets}
9779   */
9780  public  static final class Changesets extends
9781      com.google.protobuf.GeneratedMessage implements
9782      // @@protoc_insertion_point(message_implements:Changesets)
9783      ChangesetsOrBuilder {
9784    // Use Changesets.newBuilder() to construct.
9785    private Changesets(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
9786      super(builder);
9787    }
9788    private Changesets() {
9789      componentRef_ = 0;
9790      changeset_ = java.util.Collections.emptyList();
9791      changesetIndexByLine_ = java.util.Collections.emptyList();
9792    }
9793
9794    @java.lang.Override
9795    public final com.google.protobuf.UnknownFieldSet
9796    getUnknownFields() {
9797      return this.unknownFields;
9798    }
9799    private Changesets(
9800        com.google.protobuf.CodedInputStream input,
9801        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
9802      this();
9803      int mutable_bitField0_ = 0;
9804      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
9805          com.google.protobuf.UnknownFieldSet.newBuilder();
9806      try {
9807        boolean done = false;
9808        while (!done) {
9809          int tag = input.readTag();
9810          switch (tag) {
9811            case 0:
9812              done = true;
9813              break;
9814            default: {
9815              if (!parseUnknownField(input, unknownFields,
9816                                     extensionRegistry, tag)) {
9817                done = true;
9818              }
9819              break;
9820            }
9821            case 8: {
9822              bitField0_ |= 0x00000001;
9823              componentRef_ = input.readInt32();
9824              break;
9825            }
9826            case 18: {
9827              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
9828                changeset_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset>();
9829                mutable_bitField0_ |= 0x00000002;
9830              }
9831              changeset_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.parser(), extensionRegistry));
9832              break;
9833            }
9834            case 24: {
9835              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
9836                changesetIndexByLine_ = new java.util.ArrayList<java.lang.Integer>();
9837                mutable_bitField0_ |= 0x00000004;
9838              }
9839              changesetIndexByLine_.add(input.readInt32());
9840              break;
9841            }
9842            case 26: {
9843              int length = input.readRawVarint32();
9844              int limit = input.pushLimit(length);
9845              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004) && input.getBytesUntilLimit() > 0) {
9846                changesetIndexByLine_ = new java.util.ArrayList<java.lang.Integer>();
9847                mutable_bitField0_ |= 0x00000004;
9848              }
9849              while (input.getBytesUntilLimit() > 0) {
9850                changesetIndexByLine_.add(input.readInt32());
9851              }
9852              input.popLimit(limit);
9853              break;
9854            }
9855          }
9856        }
9857      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9858        throw new RuntimeException(e.setUnfinishedMessage(this));
9859      } catch (java.io.IOException e) {
9860        throw new RuntimeException(
9861            new com.google.protobuf.InvalidProtocolBufferException(
9862                e.getMessage()).setUnfinishedMessage(this));
9863      } finally {
9864        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
9865          changeset_ = java.util.Collections.unmodifiableList(changeset_);
9866        }
9867        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
9868          changesetIndexByLine_ = java.util.Collections.unmodifiableList(changesetIndexByLine_);
9869        }
9870        this.unknownFields = unknownFields.build();
9871        makeExtensionsImmutable();
9872      }
9873    }
9874    public static final com.google.protobuf.Descriptors.Descriptor
9875        getDescriptor() {
9876      return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_descriptor;
9877    }
9878
9879    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
9880        internalGetFieldAccessorTable() {
9881      return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_fieldAccessorTable
9882          .ensureFieldAccessorsInitialized(
9883              org.sonar.batch.protocol.output.BatchReport.Changesets.class, org.sonar.batch.protocol.output.BatchReport.Changesets.Builder.class);
9884    }
9885
9886    public interface ChangesetOrBuilder extends
9887        // @@protoc_insertion_point(interface_extends:Changesets.Changeset)
9888        com.google.protobuf.MessageOrBuilder {
9889
9890      /**
9891       * <code>optional string revision = 1;</code>
9892       */
9893      boolean hasRevision();
9894      /**
9895       * <code>optional string revision = 1;</code>
9896       */
9897      java.lang.String getRevision();
9898      /**
9899       * <code>optional string revision = 1;</code>
9900       */
9901      com.google.protobuf.ByteString
9902          getRevisionBytes();
9903
9904      /**
9905       * <code>optional string author = 2;</code>
9906       */
9907      boolean hasAuthor();
9908      /**
9909       * <code>optional string author = 2;</code>
9910       */
9911      java.lang.String getAuthor();
9912      /**
9913       * <code>optional string author = 2;</code>
9914       */
9915      com.google.protobuf.ByteString
9916          getAuthorBytes();
9917
9918      /**
9919       * <code>optional int64 date = 3;</code>
9920       */
9921      boolean hasDate();
9922      /**
9923       * <code>optional int64 date = 3;</code>
9924       */
9925      long getDate();
9926    }
9927    /**
9928     * Protobuf type {@code Changesets.Changeset}
9929     */
9930    public  static final class Changeset extends
9931        com.google.protobuf.GeneratedMessage implements
9932        // @@protoc_insertion_point(message_implements:Changesets.Changeset)
9933        ChangesetOrBuilder {
9934      // Use Changeset.newBuilder() to construct.
9935      private Changeset(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
9936        super(builder);
9937      }
9938      private Changeset() {
9939        revision_ = "";
9940        author_ = "";
9941        date_ = 0L;
9942      }
9943
9944      @java.lang.Override
9945      public final com.google.protobuf.UnknownFieldSet
9946      getUnknownFields() {
9947        return this.unknownFields;
9948      }
9949      private Changeset(
9950          com.google.protobuf.CodedInputStream input,
9951          com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
9952        this();
9953        int mutable_bitField0_ = 0;
9954        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
9955            com.google.protobuf.UnknownFieldSet.newBuilder();
9956        try {
9957          boolean done = false;
9958          while (!done) {
9959            int tag = input.readTag();
9960            switch (tag) {
9961              case 0:
9962                done = true;
9963                break;
9964              default: {
9965                if (!parseUnknownField(input, unknownFields,
9966                                       extensionRegistry, tag)) {
9967                  done = true;
9968                }
9969                break;
9970              }
9971              case 10: {
9972                com.google.protobuf.ByteString bs = input.readBytes();
9973                bitField0_ |= 0x00000001;
9974                revision_ = bs;
9975                break;
9976              }
9977              case 18: {
9978                com.google.protobuf.ByteString bs = input.readBytes();
9979                bitField0_ |= 0x00000002;
9980                author_ = bs;
9981                break;
9982              }
9983              case 24: {
9984                bitField0_ |= 0x00000004;
9985                date_ = input.readInt64();
9986                break;
9987              }
9988            }
9989          }
9990        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
9991          throw new RuntimeException(e.setUnfinishedMessage(this));
9992        } catch (java.io.IOException e) {
9993          throw new RuntimeException(
9994              new com.google.protobuf.InvalidProtocolBufferException(
9995                  e.getMessage()).setUnfinishedMessage(this));
9996        } finally {
9997          this.unknownFields = unknownFields.build();
9998          makeExtensionsImmutable();
9999        }
10000      }
10001      public static final com.google.protobuf.Descriptors.Descriptor
10002          getDescriptor() {
10003        return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_Changeset_descriptor;
10004      }
10005
10006      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
10007          internalGetFieldAccessorTable() {
10008        return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_Changeset_fieldAccessorTable
10009            .ensureFieldAccessorsInitialized(
10010                org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.class, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder.class);
10011      }
10012
10013      private int bitField0_;
10014      public static final int REVISION_FIELD_NUMBER = 1;
10015      private volatile java.lang.Object revision_;
10016      /**
10017       * <code>optional string revision = 1;</code>
10018       */
10019      public boolean hasRevision() {
10020        return ((bitField0_ & 0x00000001) == 0x00000001);
10021      }
10022      /**
10023       * <code>optional string revision = 1;</code>
10024       */
10025      public java.lang.String getRevision() {
10026        java.lang.Object ref = revision_;
10027        if (ref instanceof java.lang.String) {
10028          return (java.lang.String) ref;
10029        } else {
10030          com.google.protobuf.ByteString bs = 
10031              (com.google.protobuf.ByteString) ref;
10032          java.lang.String s = bs.toStringUtf8();
10033          if (bs.isValidUtf8()) {
10034            revision_ = s;
10035          }
10036          return s;
10037        }
10038      }
10039      /**
10040       * <code>optional string revision = 1;</code>
10041       */
10042      public com.google.protobuf.ByteString
10043          getRevisionBytes() {
10044        java.lang.Object ref = revision_;
10045        if (ref instanceof java.lang.String) {
10046          com.google.protobuf.ByteString b = 
10047              com.google.protobuf.ByteString.copyFromUtf8(
10048                  (java.lang.String) ref);
10049          revision_ = b;
10050          return b;
10051        } else {
10052          return (com.google.protobuf.ByteString) ref;
10053        }
10054      }
10055
10056      public static final int AUTHOR_FIELD_NUMBER = 2;
10057      private volatile java.lang.Object author_;
10058      /**
10059       * <code>optional string author = 2;</code>
10060       */
10061      public boolean hasAuthor() {
10062        return ((bitField0_ & 0x00000002) == 0x00000002);
10063      }
10064      /**
10065       * <code>optional string author = 2;</code>
10066       */
10067      public java.lang.String getAuthor() {
10068        java.lang.Object ref = author_;
10069        if (ref instanceof java.lang.String) {
10070          return (java.lang.String) ref;
10071        } else {
10072          com.google.protobuf.ByteString bs = 
10073              (com.google.protobuf.ByteString) ref;
10074          java.lang.String s = bs.toStringUtf8();
10075          if (bs.isValidUtf8()) {
10076            author_ = s;
10077          }
10078          return s;
10079        }
10080      }
10081      /**
10082       * <code>optional string author = 2;</code>
10083       */
10084      public com.google.protobuf.ByteString
10085          getAuthorBytes() {
10086        java.lang.Object ref = author_;
10087        if (ref instanceof java.lang.String) {
10088          com.google.protobuf.ByteString b = 
10089              com.google.protobuf.ByteString.copyFromUtf8(
10090                  (java.lang.String) ref);
10091          author_ = b;
10092          return b;
10093        } else {
10094          return (com.google.protobuf.ByteString) ref;
10095        }
10096      }
10097
10098      public static final int DATE_FIELD_NUMBER = 3;
10099      private long date_;
10100      /**
10101       * <code>optional int64 date = 3;</code>
10102       */
10103      public boolean hasDate() {
10104        return ((bitField0_ & 0x00000004) == 0x00000004);
10105      }
10106      /**
10107       * <code>optional int64 date = 3;</code>
10108       */
10109      public long getDate() {
10110        return date_;
10111      }
10112
10113      private byte memoizedIsInitialized = -1;
10114      public final boolean isInitialized() {
10115        byte isInitialized = memoizedIsInitialized;
10116        if (isInitialized == 1) return true;
10117        if (isInitialized == 0) return false;
10118
10119        memoizedIsInitialized = 1;
10120        return true;
10121      }
10122
10123      public void writeTo(com.google.protobuf.CodedOutputStream output)
10124                          throws java.io.IOException {
10125        if (((bitField0_ & 0x00000001) == 0x00000001)) {
10126          com.google.protobuf.GeneratedMessage.writeString(output, 1, revision_);
10127        }
10128        if (((bitField0_ & 0x00000002) == 0x00000002)) {
10129          com.google.protobuf.GeneratedMessage.writeString(output, 2, author_);
10130        }
10131        if (((bitField0_ & 0x00000004) == 0x00000004)) {
10132          output.writeInt64(3, date_);
10133        }
10134        unknownFields.writeTo(output);
10135      }
10136
10137      public int getSerializedSize() {
10138        int size = memoizedSize;
10139        if (size != -1) return size;
10140
10141        size = 0;
10142        if (((bitField0_ & 0x00000001) == 0x00000001)) {
10143          size += com.google.protobuf.GeneratedMessage.computeStringSize(1, revision_);
10144        }
10145        if (((bitField0_ & 0x00000002) == 0x00000002)) {
10146          size += com.google.protobuf.GeneratedMessage.computeStringSize(2, author_);
10147        }
10148        if (((bitField0_ & 0x00000004) == 0x00000004)) {
10149          size += com.google.protobuf.CodedOutputStream
10150            .computeInt64Size(3, date_);
10151        }
10152        size += unknownFields.getSerializedSize();
10153        memoizedSize = size;
10154        return size;
10155      }
10156
10157      private static final long serialVersionUID = 0L;
10158      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(
10159          com.google.protobuf.ByteString data)
10160          throws com.google.protobuf.InvalidProtocolBufferException {
10161        return PARSER.parseFrom(data);
10162      }
10163      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(
10164          com.google.protobuf.ByteString data,
10165          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10166          throws com.google.protobuf.InvalidProtocolBufferException {
10167        return PARSER.parseFrom(data, extensionRegistry);
10168      }
10169      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(byte[] data)
10170          throws com.google.protobuf.InvalidProtocolBufferException {
10171        return PARSER.parseFrom(data);
10172      }
10173      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(
10174          byte[] data,
10175          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10176          throws com.google.protobuf.InvalidProtocolBufferException {
10177        return PARSER.parseFrom(data, extensionRegistry);
10178      }
10179      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(java.io.InputStream input)
10180          throws java.io.IOException {
10181        return PARSER.parseFrom(input);
10182      }
10183      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(
10184          java.io.InputStream input,
10185          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10186          throws java.io.IOException {
10187        return PARSER.parseFrom(input, extensionRegistry);
10188      }
10189      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseDelimitedFrom(java.io.InputStream input)
10190          throws java.io.IOException {
10191        return PARSER.parseDelimitedFrom(input);
10192      }
10193      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseDelimitedFrom(
10194          java.io.InputStream input,
10195          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10196          throws java.io.IOException {
10197        return PARSER.parseDelimitedFrom(input, extensionRegistry);
10198      }
10199      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(
10200          com.google.protobuf.CodedInputStream input)
10201          throws java.io.IOException {
10202        return PARSER.parseFrom(input);
10203      }
10204      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parseFrom(
10205          com.google.protobuf.CodedInputStream input,
10206          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10207          throws java.io.IOException {
10208        return PARSER.parseFrom(input, extensionRegistry);
10209      }
10210
10211      public Builder newBuilderForType() { return newBuilder(); }
10212      public static Builder newBuilder() {
10213        return DEFAULT_INSTANCE.toBuilder();
10214      }
10215      public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset prototype) {
10216        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
10217      }
10218      public Builder toBuilder() {
10219        return this == DEFAULT_INSTANCE
10220            ? new Builder() : new Builder().mergeFrom(this);
10221      }
10222
10223      @java.lang.Override
10224      protected Builder newBuilderForType(
10225          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
10226        Builder builder = new Builder(parent);
10227        return builder;
10228      }
10229      /**
10230       * Protobuf type {@code Changesets.Changeset}
10231       */
10232      public static final class Builder extends
10233          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
10234          // @@protoc_insertion_point(builder_implements:Changesets.Changeset)
10235          org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder {
10236        public static final com.google.protobuf.Descriptors.Descriptor
10237            getDescriptor() {
10238          return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_Changeset_descriptor;
10239        }
10240
10241        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
10242            internalGetFieldAccessorTable() {
10243          return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_Changeset_fieldAccessorTable
10244              .ensureFieldAccessorsInitialized(
10245                  org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.class, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder.class);
10246        }
10247
10248        // Construct using org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.newBuilder()
10249        private Builder() {
10250          maybeForceBuilderInitialization();
10251        }
10252
10253        private Builder(
10254            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
10255          super(parent);
10256          maybeForceBuilderInitialization();
10257        }
10258        private void maybeForceBuilderInitialization() {
10259          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
10260          }
10261        }
10262        public Builder clear() {
10263          super.clear();
10264          revision_ = "";
10265          bitField0_ = (bitField0_ & ~0x00000001);
10266          author_ = "";
10267          bitField0_ = (bitField0_ & ~0x00000002);
10268          date_ = 0L;
10269          bitField0_ = (bitField0_ & ~0x00000004);
10270          return this;
10271        }
10272
10273        public com.google.protobuf.Descriptors.Descriptor
10274            getDescriptorForType() {
10275          return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_Changeset_descriptor;
10276        }
10277
10278        public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset getDefaultInstanceForType() {
10279          return org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.getDefaultInstance();
10280        }
10281
10282        public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset build() {
10283          org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset result = buildPartial();
10284          if (!result.isInitialized()) {
10285            throw newUninitializedMessageException(result);
10286          }
10287          return result;
10288        }
10289
10290        public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset buildPartial() {
10291          org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset result = new org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset(this);
10292          int from_bitField0_ = bitField0_;
10293          int to_bitField0_ = 0;
10294          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
10295            to_bitField0_ |= 0x00000001;
10296          }
10297          result.revision_ = revision_;
10298          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
10299            to_bitField0_ |= 0x00000002;
10300          }
10301          result.author_ = author_;
10302          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
10303            to_bitField0_ |= 0x00000004;
10304          }
10305          result.date_ = date_;
10306          result.bitField0_ = to_bitField0_;
10307          onBuilt();
10308          return result;
10309        }
10310
10311        public Builder mergeFrom(com.google.protobuf.Message other) {
10312          if (other instanceof org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset) {
10313            return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset)other);
10314          } else {
10315            super.mergeFrom(other);
10316            return this;
10317          }
10318        }
10319
10320        public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset other) {
10321          if (other == org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.getDefaultInstance()) return this;
10322          if (other.hasRevision()) {
10323            bitField0_ |= 0x00000001;
10324            revision_ = other.revision_;
10325            onChanged();
10326          }
10327          if (other.hasAuthor()) {
10328            bitField0_ |= 0x00000002;
10329            author_ = other.author_;
10330            onChanged();
10331          }
10332          if (other.hasDate()) {
10333            setDate(other.getDate());
10334          }
10335          this.mergeUnknownFields(other.unknownFields);
10336          onChanged();
10337          return this;
10338        }
10339
10340        public final boolean isInitialized() {
10341          return true;
10342        }
10343
10344        public Builder mergeFrom(
10345            com.google.protobuf.CodedInputStream input,
10346            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10347            throws java.io.IOException {
10348          org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset parsedMessage = null;
10349          try {
10350            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
10351          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
10352            parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset) e.getUnfinishedMessage();
10353            throw e;
10354          } finally {
10355            if (parsedMessage != null) {
10356              mergeFrom(parsedMessage);
10357            }
10358          }
10359          return this;
10360        }
10361        private int bitField0_;
10362
10363        private java.lang.Object revision_ = "";
10364        /**
10365         * <code>optional string revision = 1;</code>
10366         */
10367        public boolean hasRevision() {
10368          return ((bitField0_ & 0x00000001) == 0x00000001);
10369        }
10370        /**
10371         * <code>optional string revision = 1;</code>
10372         */
10373        public java.lang.String getRevision() {
10374          java.lang.Object ref = revision_;
10375          if (!(ref instanceof java.lang.String)) {
10376            com.google.protobuf.ByteString bs =
10377                (com.google.protobuf.ByteString) ref;
10378            java.lang.String s = bs.toStringUtf8();
10379            if (bs.isValidUtf8()) {
10380              revision_ = s;
10381            }
10382            return s;
10383          } else {
10384            return (java.lang.String) ref;
10385          }
10386        }
10387        /**
10388         * <code>optional string revision = 1;</code>
10389         */
10390        public com.google.protobuf.ByteString
10391            getRevisionBytes() {
10392          java.lang.Object ref = revision_;
10393          if (ref instanceof String) {
10394            com.google.protobuf.ByteString b = 
10395                com.google.protobuf.ByteString.copyFromUtf8(
10396                    (java.lang.String) ref);
10397            revision_ = b;
10398            return b;
10399          } else {
10400            return (com.google.protobuf.ByteString) ref;
10401          }
10402        }
10403        /**
10404         * <code>optional string revision = 1;</code>
10405         */
10406        public Builder setRevision(
10407            java.lang.String value) {
10408          if (value == null) {
10409    throw new NullPointerException();
10410  }
10411  bitField0_ |= 0x00000001;
10412          revision_ = value;
10413          onChanged();
10414          return this;
10415        }
10416        /**
10417         * <code>optional string revision = 1;</code>
10418         */
10419        public Builder clearRevision() {
10420          bitField0_ = (bitField0_ & ~0x00000001);
10421          revision_ = getDefaultInstance().getRevision();
10422          onChanged();
10423          return this;
10424        }
10425        /**
10426         * <code>optional string revision = 1;</code>
10427         */
10428        public Builder setRevisionBytes(
10429            com.google.protobuf.ByteString value) {
10430          if (value == null) {
10431    throw new NullPointerException();
10432  }
10433  bitField0_ |= 0x00000001;
10434          revision_ = value;
10435          onChanged();
10436          return this;
10437        }
10438
10439        private java.lang.Object author_ = "";
10440        /**
10441         * <code>optional string author = 2;</code>
10442         */
10443        public boolean hasAuthor() {
10444          return ((bitField0_ & 0x00000002) == 0x00000002);
10445        }
10446        /**
10447         * <code>optional string author = 2;</code>
10448         */
10449        public java.lang.String getAuthor() {
10450          java.lang.Object ref = author_;
10451          if (!(ref instanceof java.lang.String)) {
10452            com.google.protobuf.ByteString bs =
10453                (com.google.protobuf.ByteString) ref;
10454            java.lang.String s = bs.toStringUtf8();
10455            if (bs.isValidUtf8()) {
10456              author_ = s;
10457            }
10458            return s;
10459          } else {
10460            return (java.lang.String) ref;
10461          }
10462        }
10463        /**
10464         * <code>optional string author = 2;</code>
10465         */
10466        public com.google.protobuf.ByteString
10467            getAuthorBytes() {
10468          java.lang.Object ref = author_;
10469          if (ref instanceof String) {
10470            com.google.protobuf.ByteString b = 
10471                com.google.protobuf.ByteString.copyFromUtf8(
10472                    (java.lang.String) ref);
10473            author_ = b;
10474            return b;
10475          } else {
10476            return (com.google.protobuf.ByteString) ref;
10477          }
10478        }
10479        /**
10480         * <code>optional string author = 2;</code>
10481         */
10482        public Builder setAuthor(
10483            java.lang.String value) {
10484          if (value == null) {
10485    throw new NullPointerException();
10486  }
10487  bitField0_ |= 0x00000002;
10488          author_ = value;
10489          onChanged();
10490          return this;
10491        }
10492        /**
10493         * <code>optional string author = 2;</code>
10494         */
10495        public Builder clearAuthor() {
10496          bitField0_ = (bitField0_ & ~0x00000002);
10497          author_ = getDefaultInstance().getAuthor();
10498          onChanged();
10499          return this;
10500        }
10501        /**
10502         * <code>optional string author = 2;</code>
10503         */
10504        public Builder setAuthorBytes(
10505            com.google.protobuf.ByteString value) {
10506          if (value == null) {
10507    throw new NullPointerException();
10508  }
10509  bitField0_ |= 0x00000002;
10510          author_ = value;
10511          onChanged();
10512          return this;
10513        }
10514
10515        private long date_ ;
10516        /**
10517         * <code>optional int64 date = 3;</code>
10518         */
10519        public boolean hasDate() {
10520          return ((bitField0_ & 0x00000004) == 0x00000004);
10521        }
10522        /**
10523         * <code>optional int64 date = 3;</code>
10524         */
10525        public long getDate() {
10526          return date_;
10527        }
10528        /**
10529         * <code>optional int64 date = 3;</code>
10530         */
10531        public Builder setDate(long value) {
10532          bitField0_ |= 0x00000004;
10533          date_ = value;
10534          onChanged();
10535          return this;
10536        }
10537        /**
10538         * <code>optional int64 date = 3;</code>
10539         */
10540        public Builder clearDate() {
10541          bitField0_ = (bitField0_ & ~0x00000004);
10542          date_ = 0L;
10543          onChanged();
10544          return this;
10545        }
10546
10547        // @@protoc_insertion_point(builder_scope:Changesets.Changeset)
10548      }
10549
10550      // @@protoc_insertion_point(class_scope:Changesets.Changeset)
10551      private static final org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset DEFAULT_INSTANCE;
10552      static {
10553        DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset();
10554      }
10555
10556      public static org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset getDefaultInstance() {
10557        return DEFAULT_INSTANCE;
10558      }
10559
10560      @java.lang.Deprecated public static final com.google.protobuf.Parser<Changeset>
10561          PARSER = new com.google.protobuf.AbstractParser<Changeset>() {
10562        public Changeset parsePartialFrom(
10563            com.google.protobuf.CodedInputStream input,
10564            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10565            throws com.google.protobuf.InvalidProtocolBufferException {
10566          try {
10567            return new Changeset(input, extensionRegistry);
10568          } catch (RuntimeException e) {
10569            if (e.getCause() instanceof
10570                com.google.protobuf.InvalidProtocolBufferException) {
10571              throw (com.google.protobuf.InvalidProtocolBufferException)
10572                  e.getCause();
10573            }
10574            throw e;
10575          }
10576        }
10577      };
10578
10579      public static com.google.protobuf.Parser<Changeset> parser() {
10580        return PARSER;
10581      }
10582
10583      @java.lang.Override
10584      public com.google.protobuf.Parser<Changeset> getParserForType() {
10585        return PARSER;
10586      }
10587
10588      public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset getDefaultInstanceForType() {
10589        return DEFAULT_INSTANCE;
10590      }
10591
10592    }
10593
10594    private int bitField0_;
10595    public static final int COMPONENT_REF_FIELD_NUMBER = 1;
10596    private int componentRef_;
10597    /**
10598     * <code>optional int32 component_ref = 1;</code>
10599     */
10600    public boolean hasComponentRef() {
10601      return ((bitField0_ & 0x00000001) == 0x00000001);
10602    }
10603    /**
10604     * <code>optional int32 component_ref = 1;</code>
10605     */
10606    public int getComponentRef() {
10607      return componentRef_;
10608    }
10609
10610    public static final int CHANGESET_FIELD_NUMBER = 2;
10611    private java.util.List<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset> changeset_;
10612    /**
10613     * <code>repeated .Changesets.Changeset changeset = 2;</code>
10614     */
10615    public java.util.List<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset> getChangesetList() {
10616      return changeset_;
10617    }
10618    /**
10619     * <code>repeated .Changesets.Changeset changeset = 2;</code>
10620     */
10621    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder> 
10622        getChangesetOrBuilderList() {
10623      return changeset_;
10624    }
10625    /**
10626     * <code>repeated .Changesets.Changeset changeset = 2;</code>
10627     */
10628    public int getChangesetCount() {
10629      return changeset_.size();
10630    }
10631    /**
10632     * <code>repeated .Changesets.Changeset changeset = 2;</code>
10633     */
10634    public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset getChangeset(int index) {
10635      return changeset_.get(index);
10636    }
10637    /**
10638     * <code>repeated .Changesets.Changeset changeset = 2;</code>
10639     */
10640    public org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder getChangesetOrBuilder(
10641        int index) {
10642      return changeset_.get(index);
10643    }
10644
10645    public static final int CHANGESETINDEXBYLINE_FIELD_NUMBER = 3;
10646    private java.util.List<java.lang.Integer> changesetIndexByLine_;
10647    /**
10648     * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
10649     *
10650     * <pre>
10651     * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
10652     * </pre>
10653     */
10654    public java.util.List<java.lang.Integer>
10655        getChangesetIndexByLineList() {
10656      return changesetIndexByLine_;
10657    }
10658    /**
10659     * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
10660     *
10661     * <pre>
10662     * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
10663     * </pre>
10664     */
10665    public int getChangesetIndexByLineCount() {
10666      return changesetIndexByLine_.size();
10667    }
10668    /**
10669     * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
10670     *
10671     * <pre>
10672     * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
10673     * </pre>
10674     */
10675    public int getChangesetIndexByLine(int index) {
10676      return changesetIndexByLine_.get(index);
10677    }
10678    private int changesetIndexByLineMemoizedSerializedSize = -1;
10679
10680    private byte memoizedIsInitialized = -1;
10681    public final boolean isInitialized() {
10682      byte isInitialized = memoizedIsInitialized;
10683      if (isInitialized == 1) return true;
10684      if (isInitialized == 0) return false;
10685
10686      memoizedIsInitialized = 1;
10687      return true;
10688    }
10689
10690    public void writeTo(com.google.protobuf.CodedOutputStream output)
10691                        throws java.io.IOException {
10692      getSerializedSize();
10693      if (((bitField0_ & 0x00000001) == 0x00000001)) {
10694        output.writeInt32(1, componentRef_);
10695      }
10696      for (int i = 0; i < changeset_.size(); i++) {
10697        output.writeMessage(2, changeset_.get(i));
10698      }
10699      if (getChangesetIndexByLineList().size() > 0) {
10700        output.writeRawVarint32(26);
10701        output.writeRawVarint32(changesetIndexByLineMemoizedSerializedSize);
10702      }
10703      for (int i = 0; i < changesetIndexByLine_.size(); i++) {
10704        output.writeInt32NoTag(changesetIndexByLine_.get(i));
10705      }
10706      unknownFields.writeTo(output);
10707    }
10708
10709    public int getSerializedSize() {
10710      int size = memoizedSize;
10711      if (size != -1) return size;
10712
10713      size = 0;
10714      if (((bitField0_ & 0x00000001) == 0x00000001)) {
10715        size += com.google.protobuf.CodedOutputStream
10716          .computeInt32Size(1, componentRef_);
10717      }
10718      for (int i = 0; i < changeset_.size(); i++) {
10719        size += com.google.protobuf.CodedOutputStream
10720          .computeMessageSize(2, changeset_.get(i));
10721      }
10722      {
10723        int dataSize = 0;
10724        for (int i = 0; i < changesetIndexByLine_.size(); i++) {
10725          dataSize += com.google.protobuf.CodedOutputStream
10726            .computeInt32SizeNoTag(changesetIndexByLine_.get(i));
10727        }
10728        size += dataSize;
10729        if (!getChangesetIndexByLineList().isEmpty()) {
10730          size += 1;
10731          size += com.google.protobuf.CodedOutputStream
10732              .computeInt32SizeNoTag(dataSize);
10733        }
10734        changesetIndexByLineMemoizedSerializedSize = dataSize;
10735      }
10736      size += unknownFields.getSerializedSize();
10737      memoizedSize = size;
10738      return size;
10739    }
10740
10741    private static final long serialVersionUID = 0L;
10742    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(
10743        com.google.protobuf.ByteString data)
10744        throws com.google.protobuf.InvalidProtocolBufferException {
10745      return PARSER.parseFrom(data);
10746    }
10747    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(
10748        com.google.protobuf.ByteString data,
10749        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10750        throws com.google.protobuf.InvalidProtocolBufferException {
10751      return PARSER.parseFrom(data, extensionRegistry);
10752    }
10753    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(byte[] data)
10754        throws com.google.protobuf.InvalidProtocolBufferException {
10755      return PARSER.parseFrom(data);
10756    }
10757    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(
10758        byte[] data,
10759        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10760        throws com.google.protobuf.InvalidProtocolBufferException {
10761      return PARSER.parseFrom(data, extensionRegistry);
10762    }
10763    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(java.io.InputStream input)
10764        throws java.io.IOException {
10765      return PARSER.parseFrom(input);
10766    }
10767    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(
10768        java.io.InputStream input,
10769        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10770        throws java.io.IOException {
10771      return PARSER.parseFrom(input, extensionRegistry);
10772    }
10773    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseDelimitedFrom(java.io.InputStream input)
10774        throws java.io.IOException {
10775      return PARSER.parseDelimitedFrom(input);
10776    }
10777    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseDelimitedFrom(
10778        java.io.InputStream input,
10779        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10780        throws java.io.IOException {
10781      return PARSER.parseDelimitedFrom(input, extensionRegistry);
10782    }
10783    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(
10784        com.google.protobuf.CodedInputStream input)
10785        throws java.io.IOException {
10786      return PARSER.parseFrom(input);
10787    }
10788    public static org.sonar.batch.protocol.output.BatchReport.Changesets parseFrom(
10789        com.google.protobuf.CodedInputStream input,
10790        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10791        throws java.io.IOException {
10792      return PARSER.parseFrom(input, extensionRegistry);
10793    }
10794
10795    public Builder newBuilderForType() { return newBuilder(); }
10796    public static Builder newBuilder() {
10797      return DEFAULT_INSTANCE.toBuilder();
10798    }
10799    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Changesets prototype) {
10800      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
10801    }
10802    public Builder toBuilder() {
10803      return this == DEFAULT_INSTANCE
10804          ? new Builder() : new Builder().mergeFrom(this);
10805    }
10806
10807    @java.lang.Override
10808    protected Builder newBuilderForType(
10809        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
10810      Builder builder = new Builder(parent);
10811      return builder;
10812    }
10813    /**
10814     * Protobuf type {@code Changesets}
10815     */
10816    public static final class Builder extends
10817        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
10818        // @@protoc_insertion_point(builder_implements:Changesets)
10819        org.sonar.batch.protocol.output.BatchReport.ChangesetsOrBuilder {
10820      public static final com.google.protobuf.Descriptors.Descriptor
10821          getDescriptor() {
10822        return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_descriptor;
10823      }
10824
10825      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
10826          internalGetFieldAccessorTable() {
10827        return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_fieldAccessorTable
10828            .ensureFieldAccessorsInitialized(
10829                org.sonar.batch.protocol.output.BatchReport.Changesets.class, org.sonar.batch.protocol.output.BatchReport.Changesets.Builder.class);
10830      }
10831
10832      // Construct using org.sonar.batch.protocol.output.BatchReport.Changesets.newBuilder()
10833      private Builder() {
10834        maybeForceBuilderInitialization();
10835      }
10836
10837      private Builder(
10838          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
10839        super(parent);
10840        maybeForceBuilderInitialization();
10841      }
10842      private void maybeForceBuilderInitialization() {
10843        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
10844          getChangesetFieldBuilder();
10845        }
10846      }
10847      public Builder clear() {
10848        super.clear();
10849        componentRef_ = 0;
10850        bitField0_ = (bitField0_ & ~0x00000001);
10851        if (changesetBuilder_ == null) {
10852          changeset_ = java.util.Collections.emptyList();
10853          bitField0_ = (bitField0_ & ~0x00000002);
10854        } else {
10855          changesetBuilder_.clear();
10856        }
10857        changesetIndexByLine_ = java.util.Collections.emptyList();
10858        bitField0_ = (bitField0_ & ~0x00000004);
10859        return this;
10860      }
10861
10862      public com.google.protobuf.Descriptors.Descriptor
10863          getDescriptorForType() {
10864        return org.sonar.batch.protocol.output.BatchReport.internal_static_Changesets_descriptor;
10865      }
10866
10867      public org.sonar.batch.protocol.output.BatchReport.Changesets getDefaultInstanceForType() {
10868        return org.sonar.batch.protocol.output.BatchReport.Changesets.getDefaultInstance();
10869      }
10870
10871      public org.sonar.batch.protocol.output.BatchReport.Changesets build() {
10872        org.sonar.batch.protocol.output.BatchReport.Changesets result = buildPartial();
10873        if (!result.isInitialized()) {
10874          throw newUninitializedMessageException(result);
10875        }
10876        return result;
10877      }
10878
10879      public org.sonar.batch.protocol.output.BatchReport.Changesets buildPartial() {
10880        org.sonar.batch.protocol.output.BatchReport.Changesets result = new org.sonar.batch.protocol.output.BatchReport.Changesets(this);
10881        int from_bitField0_ = bitField0_;
10882        int to_bitField0_ = 0;
10883        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
10884          to_bitField0_ |= 0x00000001;
10885        }
10886        result.componentRef_ = componentRef_;
10887        if (changesetBuilder_ == null) {
10888          if (((bitField0_ & 0x00000002) == 0x00000002)) {
10889            changeset_ = java.util.Collections.unmodifiableList(changeset_);
10890            bitField0_ = (bitField0_ & ~0x00000002);
10891          }
10892          result.changeset_ = changeset_;
10893        } else {
10894          result.changeset_ = changesetBuilder_.build();
10895        }
10896        if (((bitField0_ & 0x00000004) == 0x00000004)) {
10897          changesetIndexByLine_ = java.util.Collections.unmodifiableList(changesetIndexByLine_);
10898          bitField0_ = (bitField0_ & ~0x00000004);
10899        }
10900        result.changesetIndexByLine_ = changesetIndexByLine_;
10901        result.bitField0_ = to_bitField0_;
10902        onBuilt();
10903        return result;
10904      }
10905
10906      public Builder mergeFrom(com.google.protobuf.Message other) {
10907        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Changesets) {
10908          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Changesets)other);
10909        } else {
10910          super.mergeFrom(other);
10911          return this;
10912        }
10913      }
10914
10915      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Changesets other) {
10916        if (other == org.sonar.batch.protocol.output.BatchReport.Changesets.getDefaultInstance()) return this;
10917        if (other.hasComponentRef()) {
10918          setComponentRef(other.getComponentRef());
10919        }
10920        if (changesetBuilder_ == null) {
10921          if (!other.changeset_.isEmpty()) {
10922            if (changeset_.isEmpty()) {
10923              changeset_ = other.changeset_;
10924              bitField0_ = (bitField0_ & ~0x00000002);
10925            } else {
10926              ensureChangesetIsMutable();
10927              changeset_.addAll(other.changeset_);
10928            }
10929            onChanged();
10930          }
10931        } else {
10932          if (!other.changeset_.isEmpty()) {
10933            if (changesetBuilder_.isEmpty()) {
10934              changesetBuilder_.dispose();
10935              changesetBuilder_ = null;
10936              changeset_ = other.changeset_;
10937              bitField0_ = (bitField0_ & ~0x00000002);
10938              changesetBuilder_ = 
10939                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
10940                   getChangesetFieldBuilder() : null;
10941            } else {
10942              changesetBuilder_.addAllMessages(other.changeset_);
10943            }
10944          }
10945        }
10946        if (!other.changesetIndexByLine_.isEmpty()) {
10947          if (changesetIndexByLine_.isEmpty()) {
10948            changesetIndexByLine_ = other.changesetIndexByLine_;
10949            bitField0_ = (bitField0_ & ~0x00000004);
10950          } else {
10951            ensureChangesetIndexByLineIsMutable();
10952            changesetIndexByLine_.addAll(other.changesetIndexByLine_);
10953          }
10954          onChanged();
10955        }
10956        this.mergeUnknownFields(other.unknownFields);
10957        onChanged();
10958        return this;
10959      }
10960
10961      public final boolean isInitialized() {
10962        return true;
10963      }
10964
10965      public Builder mergeFrom(
10966          com.google.protobuf.CodedInputStream input,
10967          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
10968          throws java.io.IOException {
10969        org.sonar.batch.protocol.output.BatchReport.Changesets parsedMessage = null;
10970        try {
10971          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
10972        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
10973          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Changesets) e.getUnfinishedMessage();
10974          throw e;
10975        } finally {
10976          if (parsedMessage != null) {
10977            mergeFrom(parsedMessage);
10978          }
10979        }
10980        return this;
10981      }
10982      private int bitField0_;
10983
10984      private int componentRef_ ;
10985      /**
10986       * <code>optional int32 component_ref = 1;</code>
10987       */
10988      public boolean hasComponentRef() {
10989        return ((bitField0_ & 0x00000001) == 0x00000001);
10990      }
10991      /**
10992       * <code>optional int32 component_ref = 1;</code>
10993       */
10994      public int getComponentRef() {
10995        return componentRef_;
10996      }
10997      /**
10998       * <code>optional int32 component_ref = 1;</code>
10999       */
11000      public Builder setComponentRef(int value) {
11001        bitField0_ |= 0x00000001;
11002        componentRef_ = value;
11003        onChanged();
11004        return this;
11005      }
11006      /**
11007       * <code>optional int32 component_ref = 1;</code>
11008       */
11009      public Builder clearComponentRef() {
11010        bitField0_ = (bitField0_ & ~0x00000001);
11011        componentRef_ = 0;
11012        onChanged();
11013        return this;
11014      }
11015
11016      private java.util.List<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset> changeset_ =
11017        java.util.Collections.emptyList();
11018      private void ensureChangesetIsMutable() {
11019        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
11020          changeset_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset>(changeset_);
11021          bitField0_ |= 0x00000002;
11022         }
11023      }
11024
11025      private com.google.protobuf.RepeatedFieldBuilder<
11026          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_;
11027
11028      /**
11029       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11030       */
11031      public java.util.List<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset> getChangesetList() {
11032        if (changesetBuilder_ == null) {
11033          return java.util.Collections.unmodifiableList(changeset_);
11034        } else {
11035          return changesetBuilder_.getMessageList();
11036        }
11037      }
11038      /**
11039       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11040       */
11041      public int getChangesetCount() {
11042        if (changesetBuilder_ == null) {
11043          return changeset_.size();
11044        } else {
11045          return changesetBuilder_.getCount();
11046        }
11047      }
11048      /**
11049       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11050       */
11051      public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset getChangeset(int index) {
11052        if (changesetBuilder_ == null) {
11053          return changeset_.get(index);
11054        } else {
11055          return changesetBuilder_.getMessage(index);
11056        }
11057      }
11058      /**
11059       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11060       */
11061      public Builder setChangeset(
11062          int index, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset value) {
11063        if (changesetBuilder_ == null) {
11064          if (value == null) {
11065            throw new NullPointerException();
11066          }
11067          ensureChangesetIsMutable();
11068          changeset_.set(index, value);
11069          onChanged();
11070        } else {
11071          changesetBuilder_.setMessage(index, value);
11072        }
11073        return this;
11074      }
11075      /**
11076       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11077       */
11078      public Builder setChangeset(
11079          int index, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder builderForValue) {
11080        if (changesetBuilder_ == null) {
11081          ensureChangesetIsMutable();
11082          changeset_.set(index, builderForValue.build());
11083          onChanged();
11084        } else {
11085          changesetBuilder_.setMessage(index, builderForValue.build());
11086        }
11087        return this;
11088      }
11089      /**
11090       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11091       */
11092      public Builder addChangeset(org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset value) {
11093        if (changesetBuilder_ == null) {
11094          if (value == null) {
11095            throw new NullPointerException();
11096          }
11097          ensureChangesetIsMutable();
11098          changeset_.add(value);
11099          onChanged();
11100        } else {
11101          changesetBuilder_.addMessage(value);
11102        }
11103        return this;
11104      }
11105      /**
11106       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11107       */
11108      public Builder addChangeset(
11109          int index, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset value) {
11110        if (changesetBuilder_ == null) {
11111          if (value == null) {
11112            throw new NullPointerException();
11113          }
11114          ensureChangesetIsMutable();
11115          changeset_.add(index, value);
11116          onChanged();
11117        } else {
11118          changesetBuilder_.addMessage(index, value);
11119        }
11120        return this;
11121      }
11122      /**
11123       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11124       */
11125      public Builder addChangeset(
11126          org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder builderForValue) {
11127        if (changesetBuilder_ == null) {
11128          ensureChangesetIsMutable();
11129          changeset_.add(builderForValue.build());
11130          onChanged();
11131        } else {
11132          changesetBuilder_.addMessage(builderForValue.build());
11133        }
11134        return this;
11135      }
11136      /**
11137       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11138       */
11139      public Builder addChangeset(
11140          int index, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder builderForValue) {
11141        if (changesetBuilder_ == null) {
11142          ensureChangesetIsMutable();
11143          changeset_.add(index, builderForValue.build());
11144          onChanged();
11145        } else {
11146          changesetBuilder_.addMessage(index, builderForValue.build());
11147        }
11148        return this;
11149      }
11150      /**
11151       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11152       */
11153      public Builder addAllChangeset(
11154          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset> values) {
11155        if (changesetBuilder_ == null) {
11156          ensureChangesetIsMutable();
11157          com.google.protobuf.AbstractMessageLite.Builder.addAll(
11158              values, changeset_);
11159          onChanged();
11160        } else {
11161          changesetBuilder_.addAllMessages(values);
11162        }
11163        return this;
11164      }
11165      /**
11166       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11167       */
11168      public Builder clearChangeset() {
11169        if (changesetBuilder_ == null) {
11170          changeset_ = java.util.Collections.emptyList();
11171          bitField0_ = (bitField0_ & ~0x00000002);
11172          onChanged();
11173        } else {
11174          changesetBuilder_.clear();
11175        }
11176        return this;
11177      }
11178      /**
11179       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11180       */
11181      public Builder removeChangeset(int index) {
11182        if (changesetBuilder_ == null) {
11183          ensureChangesetIsMutable();
11184          changeset_.remove(index);
11185          onChanged();
11186        } else {
11187          changesetBuilder_.remove(index);
11188        }
11189        return this;
11190      }
11191      /**
11192       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11193       */
11194      public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder getChangesetBuilder(
11195          int index) {
11196        return getChangesetFieldBuilder().getBuilder(index);
11197      }
11198      /**
11199       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11200       */
11201      public org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder getChangesetOrBuilder(
11202          int index) {
11203        if (changesetBuilder_ == null) {
11204          return changeset_.get(index);  } else {
11205          return changesetBuilder_.getMessageOrBuilder(index);
11206        }
11207      }
11208      /**
11209       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11210       */
11211      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.Changesets.ChangesetOrBuilder> 
11212           getChangesetOrBuilderList() {
11213        if (changesetBuilder_ != null) {
11214          return changesetBuilder_.getMessageOrBuilderList();
11215        } else {
11216          return java.util.Collections.unmodifiableList(changeset_);
11217        }
11218      }
11219      /**
11220       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11221       */
11222      public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder addChangesetBuilder() {
11223        return getChangesetFieldBuilder().addBuilder(
11224            org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.getDefaultInstance());
11225      }
11226      /**
11227       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11228       */
11229      public org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder addChangesetBuilder(
11230          int index) {
11231        return getChangesetFieldBuilder().addBuilder(
11232            index, org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.getDefaultInstance());
11233      }
11234      /**
11235       * <code>repeated .Changesets.Changeset changeset = 2;</code>
11236       */
11237      public java.util.List<org.sonar.batch.protocol.output.BatchReport.Changesets.Changeset.Builder> 
11238           getChangesetBuilderList() {
11239        return getChangesetFieldBuilder().getBuilderList();
11240      }
11241      private com.google.protobuf.RepeatedFieldBuilder<
11242          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> 
11243          getChangesetFieldBuilder() {
11244        if (changesetBuilder_ == null) {
11245          changesetBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
11246              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>(
11247                  changeset_,
11248                  ((bitField0_ & 0x00000002) == 0x00000002),
11249                  getParentForChildren(),
11250                  isClean());
11251          changeset_ = null;
11252        }
11253        return changesetBuilder_;
11254      }
11255
11256      private java.util.List<java.lang.Integer> changesetIndexByLine_ = java.util.Collections.emptyList();
11257      private void ensureChangesetIndexByLineIsMutable() {
11258        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
11259          changesetIndexByLine_ = new java.util.ArrayList<java.lang.Integer>(changesetIndexByLine_);
11260          bitField0_ |= 0x00000004;
11261         }
11262      }
11263      /**
11264       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11265       *
11266       * <pre>
11267       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11268       * </pre>
11269       */
11270      public java.util.List<java.lang.Integer>
11271          getChangesetIndexByLineList() {
11272        return java.util.Collections.unmodifiableList(changesetIndexByLine_);
11273      }
11274      /**
11275       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11276       *
11277       * <pre>
11278       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11279       * </pre>
11280       */
11281      public int getChangesetIndexByLineCount() {
11282        return changesetIndexByLine_.size();
11283      }
11284      /**
11285       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11286       *
11287       * <pre>
11288       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11289       * </pre>
11290       */
11291      public int getChangesetIndexByLine(int index) {
11292        return changesetIndexByLine_.get(index);
11293      }
11294      /**
11295       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11296       *
11297       * <pre>
11298       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11299       * </pre>
11300       */
11301      public Builder setChangesetIndexByLine(
11302          int index, int value) {
11303        ensureChangesetIndexByLineIsMutable();
11304        changesetIndexByLine_.set(index, value);
11305        onChanged();
11306        return this;
11307      }
11308      /**
11309       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11310       *
11311       * <pre>
11312       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11313       * </pre>
11314       */
11315      public Builder addChangesetIndexByLine(int value) {
11316        ensureChangesetIndexByLineIsMutable();
11317        changesetIndexByLine_.add(value);
11318        onChanged();
11319        return this;
11320      }
11321      /**
11322       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11323       *
11324       * <pre>
11325       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11326       * </pre>
11327       */
11328      public Builder addAllChangesetIndexByLine(
11329          java.lang.Iterable<? extends java.lang.Integer> values) {
11330        ensureChangesetIndexByLineIsMutable();
11331        com.google.protobuf.AbstractMessageLite.Builder.addAll(
11332            values, changesetIndexByLine_);
11333        onChanged();
11334        return this;
11335      }
11336      /**
11337       * <code>repeated int32 changesetIndexByLine = 3 [packed = true];</code>
11338       *
11339       * <pre>
11340       * if changesetIndexByLine[5] = 2 then it means that changeset[2] is the last one on line 6
11341       * </pre>
11342       */
11343      public Builder clearChangesetIndexByLine() {
11344        changesetIndexByLine_ = java.util.Collections.emptyList();
11345        bitField0_ = (bitField0_ & ~0x00000004);
11346        onChanged();
11347        return this;
11348      }
11349
11350      // @@protoc_insertion_point(builder_scope:Changesets)
11351    }
11352
11353    // @@protoc_insertion_point(class_scope:Changesets)
11354    private static final org.sonar.batch.protocol.output.BatchReport.Changesets DEFAULT_INSTANCE;
11355    static {
11356      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Changesets();
11357    }
11358
11359    public static org.sonar.batch.protocol.output.BatchReport.Changesets getDefaultInstance() {
11360      return DEFAULT_INSTANCE;
11361    }
11362
11363    @java.lang.Deprecated public static final com.google.protobuf.Parser<Changesets>
11364        PARSER = new com.google.protobuf.AbstractParser<Changesets>() {
11365      public Changesets parsePartialFrom(
11366          com.google.protobuf.CodedInputStream input,
11367          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11368          throws com.google.protobuf.InvalidProtocolBufferException {
11369        try {
11370          return new Changesets(input, extensionRegistry);
11371        } catch (RuntimeException e) {
11372          if (e.getCause() instanceof
11373              com.google.protobuf.InvalidProtocolBufferException) {
11374            throw (com.google.protobuf.InvalidProtocolBufferException)
11375                e.getCause();
11376          }
11377          throw e;
11378        }
11379      }
11380    };
11381
11382    public static com.google.protobuf.Parser<Changesets> parser() {
11383      return PARSER;
11384    }
11385
11386    @java.lang.Override
11387    public com.google.protobuf.Parser<Changesets> getParserForType() {
11388      return PARSER;
11389    }
11390
11391    public org.sonar.batch.protocol.output.BatchReport.Changesets getDefaultInstanceForType() {
11392      return DEFAULT_INSTANCE;
11393    }
11394
11395  }
11396
11397  public interface DuplicateOrBuilder extends
11398      // @@protoc_insertion_point(interface_extends:Duplicate)
11399      com.google.protobuf.MessageOrBuilder {
11400
11401    /**
11402     * <code>optional int32 other_file_ref = 1;</code>
11403     *
11404     * <pre>
11405     * Will be null when duplicate is in the same file
11406     * </pre>
11407     */
11408    boolean hasOtherFileRef();
11409    /**
11410     * <code>optional int32 other_file_ref = 1;</code>
11411     *
11412     * <pre>
11413     * Will be null when duplicate is in the same file
11414     * </pre>
11415     */
11416    int getOtherFileRef();
11417
11418    /**
11419     * <code>optional .TextRange range = 2;</code>
11420     */
11421    boolean hasRange();
11422    /**
11423     * <code>optional .TextRange range = 2;</code>
11424     */
11425    org.sonar.batch.protocol.output.BatchReport.TextRange getRange();
11426    /**
11427     * <code>optional .TextRange range = 2;</code>
11428     */
11429    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getRangeOrBuilder();
11430  }
11431  /**
11432   * Protobuf type {@code Duplicate}
11433   */
11434  public  static final class Duplicate extends
11435      com.google.protobuf.GeneratedMessage implements
11436      // @@protoc_insertion_point(message_implements:Duplicate)
11437      DuplicateOrBuilder {
11438    // Use Duplicate.newBuilder() to construct.
11439    private Duplicate(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
11440      super(builder);
11441    }
11442    private Duplicate() {
11443      otherFileRef_ = 0;
11444    }
11445
11446    @java.lang.Override
11447    public final com.google.protobuf.UnknownFieldSet
11448    getUnknownFields() {
11449      return this.unknownFields;
11450    }
11451    private Duplicate(
11452        com.google.protobuf.CodedInputStream input,
11453        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
11454      this();
11455      int mutable_bitField0_ = 0;
11456      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
11457          com.google.protobuf.UnknownFieldSet.newBuilder();
11458      try {
11459        boolean done = false;
11460        while (!done) {
11461          int tag = input.readTag();
11462          switch (tag) {
11463            case 0:
11464              done = true;
11465              break;
11466            default: {
11467              if (!parseUnknownField(input, unknownFields,
11468                                     extensionRegistry, tag)) {
11469                done = true;
11470              }
11471              break;
11472            }
11473            case 8: {
11474              bitField0_ |= 0x00000001;
11475              otherFileRef_ = input.readInt32();
11476              break;
11477            }
11478            case 18: {
11479              org.sonar.batch.protocol.output.BatchReport.TextRange.Builder subBuilder = null;
11480              if (((bitField0_ & 0x00000002) == 0x00000002)) {
11481                subBuilder = range_.toBuilder();
11482              }
11483              range_ = input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.parser(), extensionRegistry);
11484              if (subBuilder != null) {
11485                subBuilder.mergeFrom(range_);
11486                range_ = subBuilder.buildPartial();
11487              }
11488              bitField0_ |= 0x00000002;
11489              break;
11490            }
11491          }
11492        }
11493      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
11494        throw new RuntimeException(e.setUnfinishedMessage(this));
11495      } catch (java.io.IOException e) {
11496        throw new RuntimeException(
11497            new com.google.protobuf.InvalidProtocolBufferException(
11498                e.getMessage()).setUnfinishedMessage(this));
11499      } finally {
11500        this.unknownFields = unknownFields.build();
11501        makeExtensionsImmutable();
11502      }
11503    }
11504    public static final com.google.protobuf.Descriptors.Descriptor
11505        getDescriptor() {
11506      return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplicate_descriptor;
11507    }
11508
11509    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
11510        internalGetFieldAccessorTable() {
11511      return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplicate_fieldAccessorTable
11512          .ensureFieldAccessorsInitialized(
11513              org.sonar.batch.protocol.output.BatchReport.Duplicate.class, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder.class);
11514    }
11515
11516    private int bitField0_;
11517    public static final int OTHER_FILE_REF_FIELD_NUMBER = 1;
11518    private int otherFileRef_;
11519    /**
11520     * <code>optional int32 other_file_ref = 1;</code>
11521     *
11522     * <pre>
11523     * Will be null when duplicate is in the same file
11524     * </pre>
11525     */
11526    public boolean hasOtherFileRef() {
11527      return ((bitField0_ & 0x00000001) == 0x00000001);
11528    }
11529    /**
11530     * <code>optional int32 other_file_ref = 1;</code>
11531     *
11532     * <pre>
11533     * Will be null when duplicate is in the same file
11534     * </pre>
11535     */
11536    public int getOtherFileRef() {
11537      return otherFileRef_;
11538    }
11539
11540    public static final int RANGE_FIELD_NUMBER = 2;
11541    private org.sonar.batch.protocol.output.BatchReport.TextRange range_;
11542    /**
11543     * <code>optional .TextRange range = 2;</code>
11544     */
11545    public boolean hasRange() {
11546      return ((bitField0_ & 0x00000002) == 0x00000002);
11547    }
11548    /**
11549     * <code>optional .TextRange range = 2;</code>
11550     */
11551    public org.sonar.batch.protocol.output.BatchReport.TextRange getRange() {
11552      return range_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
11553    }
11554    /**
11555     * <code>optional .TextRange range = 2;</code>
11556     */
11557    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getRangeOrBuilder() {
11558      return range_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
11559    }
11560
11561    private byte memoizedIsInitialized = -1;
11562    public final boolean isInitialized() {
11563      byte isInitialized = memoizedIsInitialized;
11564      if (isInitialized == 1) return true;
11565      if (isInitialized == 0) return false;
11566
11567      memoizedIsInitialized = 1;
11568      return true;
11569    }
11570
11571    public void writeTo(com.google.protobuf.CodedOutputStream output)
11572                        throws java.io.IOException {
11573      if (((bitField0_ & 0x00000001) == 0x00000001)) {
11574        output.writeInt32(1, otherFileRef_);
11575      }
11576      if (((bitField0_ & 0x00000002) == 0x00000002)) {
11577        output.writeMessage(2, getRange());
11578      }
11579      unknownFields.writeTo(output);
11580    }
11581
11582    public int getSerializedSize() {
11583      int size = memoizedSize;
11584      if (size != -1) return size;
11585
11586      size = 0;
11587      if (((bitField0_ & 0x00000001) == 0x00000001)) {
11588        size += com.google.protobuf.CodedOutputStream
11589          .computeInt32Size(1, otherFileRef_);
11590      }
11591      if (((bitField0_ & 0x00000002) == 0x00000002)) {
11592        size += com.google.protobuf.CodedOutputStream
11593          .computeMessageSize(2, getRange());
11594      }
11595      size += unknownFields.getSerializedSize();
11596      memoizedSize = size;
11597      return size;
11598    }
11599
11600    private static final long serialVersionUID = 0L;
11601    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(
11602        com.google.protobuf.ByteString data)
11603        throws com.google.protobuf.InvalidProtocolBufferException {
11604      return PARSER.parseFrom(data);
11605    }
11606    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(
11607        com.google.protobuf.ByteString data,
11608        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11609        throws com.google.protobuf.InvalidProtocolBufferException {
11610      return PARSER.parseFrom(data, extensionRegistry);
11611    }
11612    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(byte[] data)
11613        throws com.google.protobuf.InvalidProtocolBufferException {
11614      return PARSER.parseFrom(data);
11615    }
11616    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(
11617        byte[] data,
11618        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11619        throws com.google.protobuf.InvalidProtocolBufferException {
11620      return PARSER.parseFrom(data, extensionRegistry);
11621    }
11622    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(java.io.InputStream input)
11623        throws java.io.IOException {
11624      return PARSER.parseFrom(input);
11625    }
11626    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(
11627        java.io.InputStream input,
11628        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11629        throws java.io.IOException {
11630      return PARSER.parseFrom(input, extensionRegistry);
11631    }
11632    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseDelimitedFrom(java.io.InputStream input)
11633        throws java.io.IOException {
11634      return PARSER.parseDelimitedFrom(input);
11635    }
11636    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseDelimitedFrom(
11637        java.io.InputStream input,
11638        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11639        throws java.io.IOException {
11640      return PARSER.parseDelimitedFrom(input, extensionRegistry);
11641    }
11642    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(
11643        com.google.protobuf.CodedInputStream input)
11644        throws java.io.IOException {
11645      return PARSER.parseFrom(input);
11646    }
11647    public static org.sonar.batch.protocol.output.BatchReport.Duplicate parseFrom(
11648        com.google.protobuf.CodedInputStream input,
11649        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11650        throws java.io.IOException {
11651      return PARSER.parseFrom(input, extensionRegistry);
11652    }
11653
11654    public Builder newBuilderForType() { return newBuilder(); }
11655    public static Builder newBuilder() {
11656      return DEFAULT_INSTANCE.toBuilder();
11657    }
11658    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Duplicate prototype) {
11659      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
11660    }
11661    public Builder toBuilder() {
11662      return this == DEFAULT_INSTANCE
11663          ? new Builder() : new Builder().mergeFrom(this);
11664    }
11665
11666    @java.lang.Override
11667    protected Builder newBuilderForType(
11668        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
11669      Builder builder = new Builder(parent);
11670      return builder;
11671    }
11672    /**
11673     * Protobuf type {@code Duplicate}
11674     */
11675    public static final class Builder extends
11676        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
11677        // @@protoc_insertion_point(builder_implements:Duplicate)
11678        org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder {
11679      public static final com.google.protobuf.Descriptors.Descriptor
11680          getDescriptor() {
11681        return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplicate_descriptor;
11682      }
11683
11684      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
11685          internalGetFieldAccessorTable() {
11686        return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplicate_fieldAccessorTable
11687            .ensureFieldAccessorsInitialized(
11688                org.sonar.batch.protocol.output.BatchReport.Duplicate.class, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder.class);
11689      }
11690
11691      // Construct using org.sonar.batch.protocol.output.BatchReport.Duplicate.newBuilder()
11692      private Builder() {
11693        maybeForceBuilderInitialization();
11694      }
11695
11696      private Builder(
11697          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
11698        super(parent);
11699        maybeForceBuilderInitialization();
11700      }
11701      private void maybeForceBuilderInitialization() {
11702        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
11703          getRangeFieldBuilder();
11704        }
11705      }
11706      public Builder clear() {
11707        super.clear();
11708        otherFileRef_ = 0;
11709        bitField0_ = (bitField0_ & ~0x00000001);
11710        if (rangeBuilder_ == null) {
11711          range_ = null;
11712        } else {
11713          rangeBuilder_.clear();
11714        }
11715        bitField0_ = (bitField0_ & ~0x00000002);
11716        return this;
11717      }
11718
11719      public com.google.protobuf.Descriptors.Descriptor
11720          getDescriptorForType() {
11721        return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplicate_descriptor;
11722      }
11723
11724      public org.sonar.batch.protocol.output.BatchReport.Duplicate getDefaultInstanceForType() {
11725        return org.sonar.batch.protocol.output.BatchReport.Duplicate.getDefaultInstance();
11726      }
11727
11728      public org.sonar.batch.protocol.output.BatchReport.Duplicate build() {
11729        org.sonar.batch.protocol.output.BatchReport.Duplicate result = buildPartial();
11730        if (!result.isInitialized()) {
11731          throw newUninitializedMessageException(result);
11732        }
11733        return result;
11734      }
11735
11736      public org.sonar.batch.protocol.output.BatchReport.Duplicate buildPartial() {
11737        org.sonar.batch.protocol.output.BatchReport.Duplicate result = new org.sonar.batch.protocol.output.BatchReport.Duplicate(this);
11738        int from_bitField0_ = bitField0_;
11739        int to_bitField0_ = 0;
11740        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
11741          to_bitField0_ |= 0x00000001;
11742        }
11743        result.otherFileRef_ = otherFileRef_;
11744        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
11745          to_bitField0_ |= 0x00000002;
11746        }
11747        if (rangeBuilder_ == null) {
11748          result.range_ = range_;
11749        } else {
11750          result.range_ = rangeBuilder_.build();
11751        }
11752        result.bitField0_ = to_bitField0_;
11753        onBuilt();
11754        return result;
11755      }
11756
11757      public Builder mergeFrom(com.google.protobuf.Message other) {
11758        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Duplicate) {
11759          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Duplicate)other);
11760        } else {
11761          super.mergeFrom(other);
11762          return this;
11763        }
11764      }
11765
11766      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Duplicate other) {
11767        if (other == org.sonar.batch.protocol.output.BatchReport.Duplicate.getDefaultInstance()) return this;
11768        if (other.hasOtherFileRef()) {
11769          setOtherFileRef(other.getOtherFileRef());
11770        }
11771        if (other.hasRange()) {
11772          mergeRange(other.getRange());
11773        }
11774        this.mergeUnknownFields(other.unknownFields);
11775        onChanged();
11776        return this;
11777      }
11778
11779      public final boolean isInitialized() {
11780        return true;
11781      }
11782
11783      public Builder mergeFrom(
11784          com.google.protobuf.CodedInputStream input,
11785          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11786          throws java.io.IOException {
11787        org.sonar.batch.protocol.output.BatchReport.Duplicate parsedMessage = null;
11788        try {
11789          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
11790        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
11791          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Duplicate) e.getUnfinishedMessage();
11792          throw e;
11793        } finally {
11794          if (parsedMessage != null) {
11795            mergeFrom(parsedMessage);
11796          }
11797        }
11798        return this;
11799      }
11800      private int bitField0_;
11801
11802      private int otherFileRef_ ;
11803      /**
11804       * <code>optional int32 other_file_ref = 1;</code>
11805       *
11806       * <pre>
11807       * Will be null when duplicate is in the same file
11808       * </pre>
11809       */
11810      public boolean hasOtherFileRef() {
11811        return ((bitField0_ & 0x00000001) == 0x00000001);
11812      }
11813      /**
11814       * <code>optional int32 other_file_ref = 1;</code>
11815       *
11816       * <pre>
11817       * Will be null when duplicate is in the same file
11818       * </pre>
11819       */
11820      public int getOtherFileRef() {
11821        return otherFileRef_;
11822      }
11823      /**
11824       * <code>optional int32 other_file_ref = 1;</code>
11825       *
11826       * <pre>
11827       * Will be null when duplicate is in the same file
11828       * </pre>
11829       */
11830      public Builder setOtherFileRef(int value) {
11831        bitField0_ |= 0x00000001;
11832        otherFileRef_ = value;
11833        onChanged();
11834        return this;
11835      }
11836      /**
11837       * <code>optional int32 other_file_ref = 1;</code>
11838       *
11839       * <pre>
11840       * Will be null when duplicate is in the same file
11841       * </pre>
11842       */
11843      public Builder clearOtherFileRef() {
11844        bitField0_ = (bitField0_ & ~0x00000001);
11845        otherFileRef_ = 0;
11846        onChanged();
11847        return this;
11848      }
11849
11850      private org.sonar.batch.protocol.output.BatchReport.TextRange range_ = null;
11851      private com.google.protobuf.SingleFieldBuilder<
11852          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> rangeBuilder_;
11853      /**
11854       * <code>optional .TextRange range = 2;</code>
11855       */
11856      public boolean hasRange() {
11857        return ((bitField0_ & 0x00000002) == 0x00000002);
11858      }
11859      /**
11860       * <code>optional .TextRange range = 2;</code>
11861       */
11862      public org.sonar.batch.protocol.output.BatchReport.TextRange getRange() {
11863        if (rangeBuilder_ == null) {
11864          return range_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
11865        } else {
11866          return rangeBuilder_.getMessage();
11867        }
11868      }
11869      /**
11870       * <code>optional .TextRange range = 2;</code>
11871       */
11872      public Builder setRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
11873        if (rangeBuilder_ == null) {
11874          if (value == null) {
11875            throw new NullPointerException();
11876          }
11877          range_ = value;
11878          onChanged();
11879        } else {
11880          rangeBuilder_.setMessage(value);
11881        }
11882        bitField0_ |= 0x00000002;
11883        return this;
11884      }
11885      /**
11886       * <code>optional .TextRange range = 2;</code>
11887       */
11888      public Builder setRange(
11889          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
11890        if (rangeBuilder_ == null) {
11891          range_ = builderForValue.build();
11892          onChanged();
11893        } else {
11894          rangeBuilder_.setMessage(builderForValue.build());
11895        }
11896        bitField0_ |= 0x00000002;
11897        return this;
11898      }
11899      /**
11900       * <code>optional .TextRange range = 2;</code>
11901       */
11902      public Builder mergeRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
11903        if (rangeBuilder_ == null) {
11904          if (((bitField0_ & 0x00000002) == 0x00000002) &&
11905              range_ != null &&
11906              range_ != org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) {
11907            range_ =
11908              org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder(range_).mergeFrom(value).buildPartial();
11909          } else {
11910            range_ = value;
11911          }
11912          onChanged();
11913        } else {
11914          rangeBuilder_.mergeFrom(value);
11915        }
11916        bitField0_ |= 0x00000002;
11917        return this;
11918      }
11919      /**
11920       * <code>optional .TextRange range = 2;</code>
11921       */
11922      public Builder clearRange() {
11923        if (rangeBuilder_ == null) {
11924          range_ = null;
11925          onChanged();
11926        } else {
11927          rangeBuilder_.clear();
11928        }
11929        bitField0_ = (bitField0_ & ~0x00000002);
11930        return this;
11931      }
11932      /**
11933       * <code>optional .TextRange range = 2;</code>
11934       */
11935      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getRangeBuilder() {
11936        bitField0_ |= 0x00000002;
11937        onChanged();
11938        return getRangeFieldBuilder().getBuilder();
11939      }
11940      /**
11941       * <code>optional .TextRange range = 2;</code>
11942       */
11943      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getRangeOrBuilder() {
11944        if (rangeBuilder_ != null) {
11945          return rangeBuilder_.getMessageOrBuilder();
11946        } else {
11947          return range_ == null ?
11948              org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
11949        }
11950      }
11951      /**
11952       * <code>optional .TextRange range = 2;</code>
11953       */
11954      private com.google.protobuf.SingleFieldBuilder<
11955          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
11956          getRangeFieldBuilder() {
11957        if (rangeBuilder_ == null) {
11958          rangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
11959              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
11960                  getRange(),
11961                  getParentForChildren(),
11962                  isClean());
11963          range_ = null;
11964        }
11965        return rangeBuilder_;
11966      }
11967
11968      // @@protoc_insertion_point(builder_scope:Duplicate)
11969    }
11970
11971    // @@protoc_insertion_point(class_scope:Duplicate)
11972    private static final org.sonar.batch.protocol.output.BatchReport.Duplicate DEFAULT_INSTANCE;
11973    static {
11974      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Duplicate();
11975    }
11976
11977    public static org.sonar.batch.protocol.output.BatchReport.Duplicate getDefaultInstance() {
11978      return DEFAULT_INSTANCE;
11979    }
11980
11981    @java.lang.Deprecated public static final com.google.protobuf.Parser<Duplicate>
11982        PARSER = new com.google.protobuf.AbstractParser<Duplicate>() {
11983      public Duplicate parsePartialFrom(
11984          com.google.protobuf.CodedInputStream input,
11985          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
11986          throws com.google.protobuf.InvalidProtocolBufferException {
11987        try {
11988          return new Duplicate(input, extensionRegistry);
11989        } catch (RuntimeException e) {
11990          if (e.getCause() instanceof
11991              com.google.protobuf.InvalidProtocolBufferException) {
11992            throw (com.google.protobuf.InvalidProtocolBufferException)
11993                e.getCause();
11994          }
11995          throw e;
11996        }
11997      }
11998    };
11999
12000    public static com.google.protobuf.Parser<Duplicate> parser() {
12001      return PARSER;
12002    }
12003
12004    @java.lang.Override
12005    public com.google.protobuf.Parser<Duplicate> getParserForType() {
12006      return PARSER;
12007    }
12008
12009    public org.sonar.batch.protocol.output.BatchReport.Duplicate getDefaultInstanceForType() {
12010      return DEFAULT_INSTANCE;
12011    }
12012
12013  }
12014
12015  public interface DuplicationOrBuilder extends
12016      // @@protoc_insertion_point(interface_extends:Duplication)
12017      com.google.protobuf.MessageOrBuilder {
12018
12019    /**
12020     * <code>optional .TextRange origin_position = 1;</code>
12021     *
12022     * <pre>
12023     * Origin position in current file
12024     * </pre>
12025     */
12026    boolean hasOriginPosition();
12027    /**
12028     * <code>optional .TextRange origin_position = 1;</code>
12029     *
12030     * <pre>
12031     * Origin position in current file
12032     * </pre>
12033     */
12034    org.sonar.batch.protocol.output.BatchReport.TextRange getOriginPosition();
12035    /**
12036     * <code>optional .TextRange origin_position = 1;</code>
12037     *
12038     * <pre>
12039     * Origin position in current file
12040     * </pre>
12041     */
12042    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getOriginPositionOrBuilder();
12043
12044    /**
12045     * <code>repeated .Duplicate duplicate = 2;</code>
12046     */
12047    java.util.List<org.sonar.batch.protocol.output.BatchReport.Duplicate> 
12048        getDuplicateList();
12049    /**
12050     * <code>repeated .Duplicate duplicate = 2;</code>
12051     */
12052    org.sonar.batch.protocol.output.BatchReport.Duplicate getDuplicate(int index);
12053    /**
12054     * <code>repeated .Duplicate duplicate = 2;</code>
12055     */
12056    int getDuplicateCount();
12057    /**
12058     * <code>repeated .Duplicate duplicate = 2;</code>
12059     */
12060    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder> 
12061        getDuplicateOrBuilderList();
12062    /**
12063     * <code>repeated .Duplicate duplicate = 2;</code>
12064     */
12065    org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder getDuplicateOrBuilder(
12066        int index);
12067  }
12068  /**
12069   * Protobuf type {@code Duplication}
12070   */
12071  public  static final class Duplication extends
12072      com.google.protobuf.GeneratedMessage implements
12073      // @@protoc_insertion_point(message_implements:Duplication)
12074      DuplicationOrBuilder {
12075    // Use Duplication.newBuilder() to construct.
12076    private Duplication(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
12077      super(builder);
12078    }
12079    private Duplication() {
12080      duplicate_ = java.util.Collections.emptyList();
12081    }
12082
12083    @java.lang.Override
12084    public final com.google.protobuf.UnknownFieldSet
12085    getUnknownFields() {
12086      return this.unknownFields;
12087    }
12088    private Duplication(
12089        com.google.protobuf.CodedInputStream input,
12090        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
12091      this();
12092      int mutable_bitField0_ = 0;
12093      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
12094          com.google.protobuf.UnknownFieldSet.newBuilder();
12095      try {
12096        boolean done = false;
12097        while (!done) {
12098          int tag = input.readTag();
12099          switch (tag) {
12100            case 0:
12101              done = true;
12102              break;
12103            default: {
12104              if (!parseUnknownField(input, unknownFields,
12105                                     extensionRegistry, tag)) {
12106                done = true;
12107              }
12108              break;
12109            }
12110            case 10: {
12111              org.sonar.batch.protocol.output.BatchReport.TextRange.Builder subBuilder = null;
12112              if (((bitField0_ & 0x00000001) == 0x00000001)) {
12113                subBuilder = originPosition_.toBuilder();
12114              }
12115              originPosition_ = input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.parser(), extensionRegistry);
12116              if (subBuilder != null) {
12117                subBuilder.mergeFrom(originPosition_);
12118                originPosition_ = subBuilder.buildPartial();
12119              }
12120              bitField0_ |= 0x00000001;
12121              break;
12122            }
12123            case 18: {
12124              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
12125                duplicate_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.Duplicate>();
12126                mutable_bitField0_ |= 0x00000002;
12127              }
12128              duplicate_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.Duplicate.parser(), extensionRegistry));
12129              break;
12130            }
12131          }
12132        }
12133      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
12134        throw new RuntimeException(e.setUnfinishedMessage(this));
12135      } catch (java.io.IOException e) {
12136        throw new RuntimeException(
12137            new com.google.protobuf.InvalidProtocolBufferException(
12138                e.getMessage()).setUnfinishedMessage(this));
12139      } finally {
12140        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
12141          duplicate_ = java.util.Collections.unmodifiableList(duplicate_);
12142        }
12143        this.unknownFields = unknownFields.build();
12144        makeExtensionsImmutable();
12145      }
12146    }
12147    public static final com.google.protobuf.Descriptors.Descriptor
12148        getDescriptor() {
12149      return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplication_descriptor;
12150    }
12151
12152    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
12153        internalGetFieldAccessorTable() {
12154      return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplication_fieldAccessorTable
12155          .ensureFieldAccessorsInitialized(
12156              org.sonar.batch.protocol.output.BatchReport.Duplication.class, org.sonar.batch.protocol.output.BatchReport.Duplication.Builder.class);
12157    }
12158
12159    private int bitField0_;
12160    public static final int ORIGIN_POSITION_FIELD_NUMBER = 1;
12161    private org.sonar.batch.protocol.output.BatchReport.TextRange originPosition_;
12162    /**
12163     * <code>optional .TextRange origin_position = 1;</code>
12164     *
12165     * <pre>
12166     * Origin position in current file
12167     * </pre>
12168     */
12169    public boolean hasOriginPosition() {
12170      return ((bitField0_ & 0x00000001) == 0x00000001);
12171    }
12172    /**
12173     * <code>optional .TextRange origin_position = 1;</code>
12174     *
12175     * <pre>
12176     * Origin position in current file
12177     * </pre>
12178     */
12179    public org.sonar.batch.protocol.output.BatchReport.TextRange getOriginPosition() {
12180      return originPosition_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : originPosition_;
12181    }
12182    /**
12183     * <code>optional .TextRange origin_position = 1;</code>
12184     *
12185     * <pre>
12186     * Origin position in current file
12187     * </pre>
12188     */
12189    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getOriginPositionOrBuilder() {
12190      return originPosition_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : originPosition_;
12191    }
12192
12193    public static final int DUPLICATE_FIELD_NUMBER = 2;
12194    private java.util.List<org.sonar.batch.protocol.output.BatchReport.Duplicate> duplicate_;
12195    /**
12196     * <code>repeated .Duplicate duplicate = 2;</code>
12197     */
12198    public java.util.List<org.sonar.batch.protocol.output.BatchReport.Duplicate> getDuplicateList() {
12199      return duplicate_;
12200    }
12201    /**
12202     * <code>repeated .Duplicate duplicate = 2;</code>
12203     */
12204    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder> 
12205        getDuplicateOrBuilderList() {
12206      return duplicate_;
12207    }
12208    /**
12209     * <code>repeated .Duplicate duplicate = 2;</code>
12210     */
12211    public int getDuplicateCount() {
12212      return duplicate_.size();
12213    }
12214    /**
12215     * <code>repeated .Duplicate duplicate = 2;</code>
12216     */
12217    public org.sonar.batch.protocol.output.BatchReport.Duplicate getDuplicate(int index) {
12218      return duplicate_.get(index);
12219    }
12220    /**
12221     * <code>repeated .Duplicate duplicate = 2;</code>
12222     */
12223    public org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder getDuplicateOrBuilder(
12224        int index) {
12225      return duplicate_.get(index);
12226    }
12227
12228    private byte memoizedIsInitialized = -1;
12229    public final boolean isInitialized() {
12230      byte isInitialized = memoizedIsInitialized;
12231      if (isInitialized == 1) return true;
12232      if (isInitialized == 0) return false;
12233
12234      memoizedIsInitialized = 1;
12235      return true;
12236    }
12237
12238    public void writeTo(com.google.protobuf.CodedOutputStream output)
12239                        throws java.io.IOException {
12240      if (((bitField0_ & 0x00000001) == 0x00000001)) {
12241        output.writeMessage(1, getOriginPosition());
12242      }
12243      for (int i = 0; i < duplicate_.size(); i++) {
12244        output.writeMessage(2, duplicate_.get(i));
12245      }
12246      unknownFields.writeTo(output);
12247    }
12248
12249    public int getSerializedSize() {
12250      int size = memoizedSize;
12251      if (size != -1) return size;
12252
12253      size = 0;
12254      if (((bitField0_ & 0x00000001) == 0x00000001)) {
12255        size += com.google.protobuf.CodedOutputStream
12256          .computeMessageSize(1, getOriginPosition());
12257      }
12258      for (int i = 0; i < duplicate_.size(); i++) {
12259        size += com.google.protobuf.CodedOutputStream
12260          .computeMessageSize(2, duplicate_.get(i));
12261      }
12262      size += unknownFields.getSerializedSize();
12263      memoizedSize = size;
12264      return size;
12265    }
12266
12267    private static final long serialVersionUID = 0L;
12268    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(
12269        com.google.protobuf.ByteString data)
12270        throws com.google.protobuf.InvalidProtocolBufferException {
12271      return PARSER.parseFrom(data);
12272    }
12273    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(
12274        com.google.protobuf.ByteString data,
12275        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12276        throws com.google.protobuf.InvalidProtocolBufferException {
12277      return PARSER.parseFrom(data, extensionRegistry);
12278    }
12279    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(byte[] data)
12280        throws com.google.protobuf.InvalidProtocolBufferException {
12281      return PARSER.parseFrom(data);
12282    }
12283    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(
12284        byte[] data,
12285        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12286        throws com.google.protobuf.InvalidProtocolBufferException {
12287      return PARSER.parseFrom(data, extensionRegistry);
12288    }
12289    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(java.io.InputStream input)
12290        throws java.io.IOException {
12291      return PARSER.parseFrom(input);
12292    }
12293    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(
12294        java.io.InputStream input,
12295        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12296        throws java.io.IOException {
12297      return PARSER.parseFrom(input, extensionRegistry);
12298    }
12299    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseDelimitedFrom(java.io.InputStream input)
12300        throws java.io.IOException {
12301      return PARSER.parseDelimitedFrom(input);
12302    }
12303    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseDelimitedFrom(
12304        java.io.InputStream input,
12305        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12306        throws java.io.IOException {
12307      return PARSER.parseDelimitedFrom(input, extensionRegistry);
12308    }
12309    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(
12310        com.google.protobuf.CodedInputStream input)
12311        throws java.io.IOException {
12312      return PARSER.parseFrom(input);
12313    }
12314    public static org.sonar.batch.protocol.output.BatchReport.Duplication parseFrom(
12315        com.google.protobuf.CodedInputStream input,
12316        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12317        throws java.io.IOException {
12318      return PARSER.parseFrom(input, extensionRegistry);
12319    }
12320
12321    public Builder newBuilderForType() { return newBuilder(); }
12322    public static Builder newBuilder() {
12323      return DEFAULT_INSTANCE.toBuilder();
12324    }
12325    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Duplication prototype) {
12326      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
12327    }
12328    public Builder toBuilder() {
12329      return this == DEFAULT_INSTANCE
12330          ? new Builder() : new Builder().mergeFrom(this);
12331    }
12332
12333    @java.lang.Override
12334    protected Builder newBuilderForType(
12335        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
12336      Builder builder = new Builder(parent);
12337      return builder;
12338    }
12339    /**
12340     * Protobuf type {@code Duplication}
12341     */
12342    public static final class Builder extends
12343        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
12344        // @@protoc_insertion_point(builder_implements:Duplication)
12345        org.sonar.batch.protocol.output.BatchReport.DuplicationOrBuilder {
12346      public static final com.google.protobuf.Descriptors.Descriptor
12347          getDescriptor() {
12348        return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplication_descriptor;
12349      }
12350
12351      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
12352          internalGetFieldAccessorTable() {
12353        return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplication_fieldAccessorTable
12354            .ensureFieldAccessorsInitialized(
12355                org.sonar.batch.protocol.output.BatchReport.Duplication.class, org.sonar.batch.protocol.output.BatchReport.Duplication.Builder.class);
12356      }
12357
12358      // Construct using org.sonar.batch.protocol.output.BatchReport.Duplication.newBuilder()
12359      private Builder() {
12360        maybeForceBuilderInitialization();
12361      }
12362
12363      private Builder(
12364          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
12365        super(parent);
12366        maybeForceBuilderInitialization();
12367      }
12368      private void maybeForceBuilderInitialization() {
12369        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
12370          getOriginPositionFieldBuilder();
12371          getDuplicateFieldBuilder();
12372        }
12373      }
12374      public Builder clear() {
12375        super.clear();
12376        if (originPositionBuilder_ == null) {
12377          originPosition_ = null;
12378        } else {
12379          originPositionBuilder_.clear();
12380        }
12381        bitField0_ = (bitField0_ & ~0x00000001);
12382        if (duplicateBuilder_ == null) {
12383          duplicate_ = java.util.Collections.emptyList();
12384          bitField0_ = (bitField0_ & ~0x00000002);
12385        } else {
12386          duplicateBuilder_.clear();
12387        }
12388        return this;
12389      }
12390
12391      public com.google.protobuf.Descriptors.Descriptor
12392          getDescriptorForType() {
12393        return org.sonar.batch.protocol.output.BatchReport.internal_static_Duplication_descriptor;
12394      }
12395
12396      public org.sonar.batch.protocol.output.BatchReport.Duplication getDefaultInstanceForType() {
12397        return org.sonar.batch.protocol.output.BatchReport.Duplication.getDefaultInstance();
12398      }
12399
12400      public org.sonar.batch.protocol.output.BatchReport.Duplication build() {
12401        org.sonar.batch.protocol.output.BatchReport.Duplication result = buildPartial();
12402        if (!result.isInitialized()) {
12403          throw newUninitializedMessageException(result);
12404        }
12405        return result;
12406      }
12407
12408      public org.sonar.batch.protocol.output.BatchReport.Duplication buildPartial() {
12409        org.sonar.batch.protocol.output.BatchReport.Duplication result = new org.sonar.batch.protocol.output.BatchReport.Duplication(this);
12410        int from_bitField0_ = bitField0_;
12411        int to_bitField0_ = 0;
12412        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
12413          to_bitField0_ |= 0x00000001;
12414        }
12415        if (originPositionBuilder_ == null) {
12416          result.originPosition_ = originPosition_;
12417        } else {
12418          result.originPosition_ = originPositionBuilder_.build();
12419        }
12420        if (duplicateBuilder_ == null) {
12421          if (((bitField0_ & 0x00000002) == 0x00000002)) {
12422            duplicate_ = java.util.Collections.unmodifiableList(duplicate_);
12423            bitField0_ = (bitField0_ & ~0x00000002);
12424          }
12425          result.duplicate_ = duplicate_;
12426        } else {
12427          result.duplicate_ = duplicateBuilder_.build();
12428        }
12429        result.bitField0_ = to_bitField0_;
12430        onBuilt();
12431        return result;
12432      }
12433
12434      public Builder mergeFrom(com.google.protobuf.Message other) {
12435        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Duplication) {
12436          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Duplication)other);
12437        } else {
12438          super.mergeFrom(other);
12439          return this;
12440        }
12441      }
12442
12443      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Duplication other) {
12444        if (other == org.sonar.batch.protocol.output.BatchReport.Duplication.getDefaultInstance()) return this;
12445        if (other.hasOriginPosition()) {
12446          mergeOriginPosition(other.getOriginPosition());
12447        }
12448        if (duplicateBuilder_ == null) {
12449          if (!other.duplicate_.isEmpty()) {
12450            if (duplicate_.isEmpty()) {
12451              duplicate_ = other.duplicate_;
12452              bitField0_ = (bitField0_ & ~0x00000002);
12453            } else {
12454              ensureDuplicateIsMutable();
12455              duplicate_.addAll(other.duplicate_);
12456            }
12457            onChanged();
12458          }
12459        } else {
12460          if (!other.duplicate_.isEmpty()) {
12461            if (duplicateBuilder_.isEmpty()) {
12462              duplicateBuilder_.dispose();
12463              duplicateBuilder_ = null;
12464              duplicate_ = other.duplicate_;
12465              bitField0_ = (bitField0_ & ~0x00000002);
12466              duplicateBuilder_ = 
12467                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
12468                   getDuplicateFieldBuilder() : null;
12469            } else {
12470              duplicateBuilder_.addAllMessages(other.duplicate_);
12471            }
12472          }
12473        }
12474        this.mergeUnknownFields(other.unknownFields);
12475        onChanged();
12476        return this;
12477      }
12478
12479      public final boolean isInitialized() {
12480        return true;
12481      }
12482
12483      public Builder mergeFrom(
12484          com.google.protobuf.CodedInputStream input,
12485          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12486          throws java.io.IOException {
12487        org.sonar.batch.protocol.output.BatchReport.Duplication parsedMessage = null;
12488        try {
12489          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
12490        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
12491          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Duplication) e.getUnfinishedMessage();
12492          throw e;
12493        } finally {
12494          if (parsedMessage != null) {
12495            mergeFrom(parsedMessage);
12496          }
12497        }
12498        return this;
12499      }
12500      private int bitField0_;
12501
12502      private org.sonar.batch.protocol.output.BatchReport.TextRange originPosition_ = null;
12503      private com.google.protobuf.SingleFieldBuilder<
12504          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> originPositionBuilder_;
12505      /**
12506       * <code>optional .TextRange origin_position = 1;</code>
12507       *
12508       * <pre>
12509       * Origin position in current file
12510       * </pre>
12511       */
12512      public boolean hasOriginPosition() {
12513        return ((bitField0_ & 0x00000001) == 0x00000001);
12514      }
12515      /**
12516       * <code>optional .TextRange origin_position = 1;</code>
12517       *
12518       * <pre>
12519       * Origin position in current file
12520       * </pre>
12521       */
12522      public org.sonar.batch.protocol.output.BatchReport.TextRange getOriginPosition() {
12523        if (originPositionBuilder_ == null) {
12524          return originPosition_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : originPosition_;
12525        } else {
12526          return originPositionBuilder_.getMessage();
12527        }
12528      }
12529      /**
12530       * <code>optional .TextRange origin_position = 1;</code>
12531       *
12532       * <pre>
12533       * Origin position in current file
12534       * </pre>
12535       */
12536      public Builder setOriginPosition(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
12537        if (originPositionBuilder_ == null) {
12538          if (value == null) {
12539            throw new NullPointerException();
12540          }
12541          originPosition_ = value;
12542          onChanged();
12543        } else {
12544          originPositionBuilder_.setMessage(value);
12545        }
12546        bitField0_ |= 0x00000001;
12547        return this;
12548      }
12549      /**
12550       * <code>optional .TextRange origin_position = 1;</code>
12551       *
12552       * <pre>
12553       * Origin position in current file
12554       * </pre>
12555       */
12556      public Builder setOriginPosition(
12557          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
12558        if (originPositionBuilder_ == null) {
12559          originPosition_ = builderForValue.build();
12560          onChanged();
12561        } else {
12562          originPositionBuilder_.setMessage(builderForValue.build());
12563        }
12564        bitField0_ |= 0x00000001;
12565        return this;
12566      }
12567      /**
12568       * <code>optional .TextRange origin_position = 1;</code>
12569       *
12570       * <pre>
12571       * Origin position in current file
12572       * </pre>
12573       */
12574      public Builder mergeOriginPosition(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
12575        if (originPositionBuilder_ == null) {
12576          if (((bitField0_ & 0x00000001) == 0x00000001) &&
12577              originPosition_ != null &&
12578              originPosition_ != org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) {
12579            originPosition_ =
12580              org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder(originPosition_).mergeFrom(value).buildPartial();
12581          } else {
12582            originPosition_ = value;
12583          }
12584          onChanged();
12585        } else {
12586          originPositionBuilder_.mergeFrom(value);
12587        }
12588        bitField0_ |= 0x00000001;
12589        return this;
12590      }
12591      /**
12592       * <code>optional .TextRange origin_position = 1;</code>
12593       *
12594       * <pre>
12595       * Origin position in current file
12596       * </pre>
12597       */
12598      public Builder clearOriginPosition() {
12599        if (originPositionBuilder_ == null) {
12600          originPosition_ = null;
12601          onChanged();
12602        } else {
12603          originPositionBuilder_.clear();
12604        }
12605        bitField0_ = (bitField0_ & ~0x00000001);
12606        return this;
12607      }
12608      /**
12609       * <code>optional .TextRange origin_position = 1;</code>
12610       *
12611       * <pre>
12612       * Origin position in current file
12613       * </pre>
12614       */
12615      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getOriginPositionBuilder() {
12616        bitField0_ |= 0x00000001;
12617        onChanged();
12618        return getOriginPositionFieldBuilder().getBuilder();
12619      }
12620      /**
12621       * <code>optional .TextRange origin_position = 1;</code>
12622       *
12623       * <pre>
12624       * Origin position in current file
12625       * </pre>
12626       */
12627      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getOriginPositionOrBuilder() {
12628        if (originPositionBuilder_ != null) {
12629          return originPositionBuilder_.getMessageOrBuilder();
12630        } else {
12631          return originPosition_ == null ?
12632              org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : originPosition_;
12633        }
12634      }
12635      /**
12636       * <code>optional .TextRange origin_position = 1;</code>
12637       *
12638       * <pre>
12639       * Origin position in current file
12640       * </pre>
12641       */
12642      private com.google.protobuf.SingleFieldBuilder<
12643          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
12644          getOriginPositionFieldBuilder() {
12645        if (originPositionBuilder_ == null) {
12646          originPositionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
12647              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
12648                  getOriginPosition(),
12649                  getParentForChildren(),
12650                  isClean());
12651          originPosition_ = null;
12652        }
12653        return originPositionBuilder_;
12654      }
12655
12656      private java.util.List<org.sonar.batch.protocol.output.BatchReport.Duplicate> duplicate_ =
12657        java.util.Collections.emptyList();
12658      private void ensureDuplicateIsMutable() {
12659        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
12660          duplicate_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.Duplicate>(duplicate_);
12661          bitField0_ |= 0x00000002;
12662         }
12663      }
12664
12665      private com.google.protobuf.RepeatedFieldBuilder<
12666          org.sonar.batch.protocol.output.BatchReport.Duplicate, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder, org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder> duplicateBuilder_;
12667
12668      /**
12669       * <code>repeated .Duplicate duplicate = 2;</code>
12670       */
12671      public java.util.List<org.sonar.batch.protocol.output.BatchReport.Duplicate> getDuplicateList() {
12672        if (duplicateBuilder_ == null) {
12673          return java.util.Collections.unmodifiableList(duplicate_);
12674        } else {
12675          return duplicateBuilder_.getMessageList();
12676        }
12677      }
12678      /**
12679       * <code>repeated .Duplicate duplicate = 2;</code>
12680       */
12681      public int getDuplicateCount() {
12682        if (duplicateBuilder_ == null) {
12683          return duplicate_.size();
12684        } else {
12685          return duplicateBuilder_.getCount();
12686        }
12687      }
12688      /**
12689       * <code>repeated .Duplicate duplicate = 2;</code>
12690       */
12691      public org.sonar.batch.protocol.output.BatchReport.Duplicate getDuplicate(int index) {
12692        if (duplicateBuilder_ == null) {
12693          return duplicate_.get(index);
12694        } else {
12695          return duplicateBuilder_.getMessage(index);
12696        }
12697      }
12698      /**
12699       * <code>repeated .Duplicate duplicate = 2;</code>
12700       */
12701      public Builder setDuplicate(
12702          int index, org.sonar.batch.protocol.output.BatchReport.Duplicate value) {
12703        if (duplicateBuilder_ == null) {
12704          if (value == null) {
12705            throw new NullPointerException();
12706          }
12707          ensureDuplicateIsMutable();
12708          duplicate_.set(index, value);
12709          onChanged();
12710        } else {
12711          duplicateBuilder_.setMessage(index, value);
12712        }
12713        return this;
12714      }
12715      /**
12716       * <code>repeated .Duplicate duplicate = 2;</code>
12717       */
12718      public Builder setDuplicate(
12719          int index, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder builderForValue) {
12720        if (duplicateBuilder_ == null) {
12721          ensureDuplicateIsMutable();
12722          duplicate_.set(index, builderForValue.build());
12723          onChanged();
12724        } else {
12725          duplicateBuilder_.setMessage(index, builderForValue.build());
12726        }
12727        return this;
12728      }
12729      /**
12730       * <code>repeated .Duplicate duplicate = 2;</code>
12731       */
12732      public Builder addDuplicate(org.sonar.batch.protocol.output.BatchReport.Duplicate value) {
12733        if (duplicateBuilder_ == null) {
12734          if (value == null) {
12735            throw new NullPointerException();
12736          }
12737          ensureDuplicateIsMutable();
12738          duplicate_.add(value);
12739          onChanged();
12740        } else {
12741          duplicateBuilder_.addMessage(value);
12742        }
12743        return this;
12744      }
12745      /**
12746       * <code>repeated .Duplicate duplicate = 2;</code>
12747       */
12748      public Builder addDuplicate(
12749          int index, org.sonar.batch.protocol.output.BatchReport.Duplicate value) {
12750        if (duplicateBuilder_ == null) {
12751          if (value == null) {
12752            throw new NullPointerException();
12753          }
12754          ensureDuplicateIsMutable();
12755          duplicate_.add(index, value);
12756          onChanged();
12757        } else {
12758          duplicateBuilder_.addMessage(index, value);
12759        }
12760        return this;
12761      }
12762      /**
12763       * <code>repeated .Duplicate duplicate = 2;</code>
12764       */
12765      public Builder addDuplicate(
12766          org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder builderForValue) {
12767        if (duplicateBuilder_ == null) {
12768          ensureDuplicateIsMutable();
12769          duplicate_.add(builderForValue.build());
12770          onChanged();
12771        } else {
12772          duplicateBuilder_.addMessage(builderForValue.build());
12773        }
12774        return this;
12775      }
12776      /**
12777       * <code>repeated .Duplicate duplicate = 2;</code>
12778       */
12779      public Builder addDuplicate(
12780          int index, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder builderForValue) {
12781        if (duplicateBuilder_ == null) {
12782          ensureDuplicateIsMutable();
12783          duplicate_.add(index, builderForValue.build());
12784          onChanged();
12785        } else {
12786          duplicateBuilder_.addMessage(index, builderForValue.build());
12787        }
12788        return this;
12789      }
12790      /**
12791       * <code>repeated .Duplicate duplicate = 2;</code>
12792       */
12793      public Builder addAllDuplicate(
12794          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.Duplicate> values) {
12795        if (duplicateBuilder_ == null) {
12796          ensureDuplicateIsMutable();
12797          com.google.protobuf.AbstractMessageLite.Builder.addAll(
12798              values, duplicate_);
12799          onChanged();
12800        } else {
12801          duplicateBuilder_.addAllMessages(values);
12802        }
12803        return this;
12804      }
12805      /**
12806       * <code>repeated .Duplicate duplicate = 2;</code>
12807       */
12808      public Builder clearDuplicate() {
12809        if (duplicateBuilder_ == null) {
12810          duplicate_ = java.util.Collections.emptyList();
12811          bitField0_ = (bitField0_ & ~0x00000002);
12812          onChanged();
12813        } else {
12814          duplicateBuilder_.clear();
12815        }
12816        return this;
12817      }
12818      /**
12819       * <code>repeated .Duplicate duplicate = 2;</code>
12820       */
12821      public Builder removeDuplicate(int index) {
12822        if (duplicateBuilder_ == null) {
12823          ensureDuplicateIsMutable();
12824          duplicate_.remove(index);
12825          onChanged();
12826        } else {
12827          duplicateBuilder_.remove(index);
12828        }
12829        return this;
12830      }
12831      /**
12832       * <code>repeated .Duplicate duplicate = 2;</code>
12833       */
12834      public org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder getDuplicateBuilder(
12835          int index) {
12836        return getDuplicateFieldBuilder().getBuilder(index);
12837      }
12838      /**
12839       * <code>repeated .Duplicate duplicate = 2;</code>
12840       */
12841      public org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder getDuplicateOrBuilder(
12842          int index) {
12843        if (duplicateBuilder_ == null) {
12844          return duplicate_.get(index);  } else {
12845          return duplicateBuilder_.getMessageOrBuilder(index);
12846        }
12847      }
12848      /**
12849       * <code>repeated .Duplicate duplicate = 2;</code>
12850       */
12851      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder> 
12852           getDuplicateOrBuilderList() {
12853        if (duplicateBuilder_ != null) {
12854          return duplicateBuilder_.getMessageOrBuilderList();
12855        } else {
12856          return java.util.Collections.unmodifiableList(duplicate_);
12857        }
12858      }
12859      /**
12860       * <code>repeated .Duplicate duplicate = 2;</code>
12861       */
12862      public org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder addDuplicateBuilder() {
12863        return getDuplicateFieldBuilder().addBuilder(
12864            org.sonar.batch.protocol.output.BatchReport.Duplicate.getDefaultInstance());
12865      }
12866      /**
12867       * <code>repeated .Duplicate duplicate = 2;</code>
12868       */
12869      public org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder addDuplicateBuilder(
12870          int index) {
12871        return getDuplicateFieldBuilder().addBuilder(
12872            index, org.sonar.batch.protocol.output.BatchReport.Duplicate.getDefaultInstance());
12873      }
12874      /**
12875       * <code>repeated .Duplicate duplicate = 2;</code>
12876       */
12877      public java.util.List<org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder> 
12878           getDuplicateBuilderList() {
12879        return getDuplicateFieldBuilder().getBuilderList();
12880      }
12881      private com.google.protobuf.RepeatedFieldBuilder<
12882          org.sonar.batch.protocol.output.BatchReport.Duplicate, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder, org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder> 
12883          getDuplicateFieldBuilder() {
12884        if (duplicateBuilder_ == null) {
12885          duplicateBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
12886              org.sonar.batch.protocol.output.BatchReport.Duplicate, org.sonar.batch.protocol.output.BatchReport.Duplicate.Builder, org.sonar.batch.protocol.output.BatchReport.DuplicateOrBuilder>(
12887                  duplicate_,
12888                  ((bitField0_ & 0x00000002) == 0x00000002),
12889                  getParentForChildren(),
12890                  isClean());
12891          duplicate_ = null;
12892        }
12893        return duplicateBuilder_;
12894      }
12895
12896      // @@protoc_insertion_point(builder_scope:Duplication)
12897    }
12898
12899    // @@protoc_insertion_point(class_scope:Duplication)
12900    private static final org.sonar.batch.protocol.output.BatchReport.Duplication DEFAULT_INSTANCE;
12901    static {
12902      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Duplication();
12903    }
12904
12905    public static org.sonar.batch.protocol.output.BatchReport.Duplication getDefaultInstance() {
12906      return DEFAULT_INSTANCE;
12907    }
12908
12909    @java.lang.Deprecated public static final com.google.protobuf.Parser<Duplication>
12910        PARSER = new com.google.protobuf.AbstractParser<Duplication>() {
12911      public Duplication parsePartialFrom(
12912          com.google.protobuf.CodedInputStream input,
12913          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
12914          throws com.google.protobuf.InvalidProtocolBufferException {
12915        try {
12916          return new Duplication(input, extensionRegistry);
12917        } catch (RuntimeException e) {
12918          if (e.getCause() instanceof
12919              com.google.protobuf.InvalidProtocolBufferException) {
12920            throw (com.google.protobuf.InvalidProtocolBufferException)
12921                e.getCause();
12922          }
12923          throw e;
12924        }
12925      }
12926    };
12927
12928    public static com.google.protobuf.Parser<Duplication> parser() {
12929      return PARSER;
12930    }
12931
12932    @java.lang.Override
12933    public com.google.protobuf.Parser<Duplication> getParserForType() {
12934      return PARSER;
12935    }
12936
12937    public org.sonar.batch.protocol.output.BatchReport.Duplication getDefaultInstanceForType() {
12938      return DEFAULT_INSTANCE;
12939    }
12940
12941  }
12942
12943  public interface CpdTextBlockOrBuilder extends
12944      // @@protoc_insertion_point(interface_extends:CpdTextBlock)
12945      com.google.protobuf.MessageOrBuilder {
12946
12947    /**
12948     * <code>optional string hash = 1;</code>
12949     */
12950    boolean hasHash();
12951    /**
12952     * <code>optional string hash = 1;</code>
12953     */
12954    java.lang.String getHash();
12955    /**
12956     * <code>optional string hash = 1;</code>
12957     */
12958    com.google.protobuf.ByteString
12959        getHashBytes();
12960
12961    /**
12962     * <code>optional int32 start_line = 2;</code>
12963     */
12964    boolean hasStartLine();
12965    /**
12966     * <code>optional int32 start_line = 2;</code>
12967     */
12968    int getStartLine();
12969
12970    /**
12971     * <code>optional int32 end_line = 3;</code>
12972     */
12973    boolean hasEndLine();
12974    /**
12975     * <code>optional int32 end_line = 3;</code>
12976     */
12977    int getEndLine();
12978
12979    /**
12980     * <code>optional int32 start_token_index = 4;</code>
12981     */
12982    boolean hasStartTokenIndex();
12983    /**
12984     * <code>optional int32 start_token_index = 4;</code>
12985     */
12986    int getStartTokenIndex();
12987
12988    /**
12989     * <code>optional int32 end_token_index = 5;</code>
12990     */
12991    boolean hasEndTokenIndex();
12992    /**
12993     * <code>optional int32 end_token_index = 5;</code>
12994     */
12995    int getEndTokenIndex();
12996  }
12997  /**
12998   * Protobuf type {@code CpdTextBlock}
12999   *
13000   * <pre>
13001   * Used for cross project duplication
13002   * </pre>
13003   */
13004  public  static final class CpdTextBlock extends
13005      com.google.protobuf.GeneratedMessage implements
13006      // @@protoc_insertion_point(message_implements:CpdTextBlock)
13007      CpdTextBlockOrBuilder {
13008    // Use CpdTextBlock.newBuilder() to construct.
13009    private CpdTextBlock(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
13010      super(builder);
13011    }
13012    private CpdTextBlock() {
13013      hash_ = "";
13014      startLine_ = 0;
13015      endLine_ = 0;
13016      startTokenIndex_ = 0;
13017      endTokenIndex_ = 0;
13018    }
13019
13020    @java.lang.Override
13021    public final com.google.protobuf.UnknownFieldSet
13022    getUnknownFields() {
13023      return this.unknownFields;
13024    }
13025    private CpdTextBlock(
13026        com.google.protobuf.CodedInputStream input,
13027        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
13028      this();
13029      int mutable_bitField0_ = 0;
13030      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
13031          com.google.protobuf.UnknownFieldSet.newBuilder();
13032      try {
13033        boolean done = false;
13034        while (!done) {
13035          int tag = input.readTag();
13036          switch (tag) {
13037            case 0:
13038              done = true;
13039              break;
13040            default: {
13041              if (!parseUnknownField(input, unknownFields,
13042                                     extensionRegistry, tag)) {
13043                done = true;
13044              }
13045              break;
13046            }
13047            case 10: {
13048              com.google.protobuf.ByteString bs = input.readBytes();
13049              bitField0_ |= 0x00000001;
13050              hash_ = bs;
13051              break;
13052            }
13053            case 16: {
13054              bitField0_ |= 0x00000002;
13055              startLine_ = input.readInt32();
13056              break;
13057            }
13058            case 24: {
13059              bitField0_ |= 0x00000004;
13060              endLine_ = input.readInt32();
13061              break;
13062            }
13063            case 32: {
13064              bitField0_ |= 0x00000008;
13065              startTokenIndex_ = input.readInt32();
13066              break;
13067            }
13068            case 40: {
13069              bitField0_ |= 0x00000010;
13070              endTokenIndex_ = input.readInt32();
13071              break;
13072            }
13073          }
13074        }
13075      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
13076        throw new RuntimeException(e.setUnfinishedMessage(this));
13077      } catch (java.io.IOException e) {
13078        throw new RuntimeException(
13079            new com.google.protobuf.InvalidProtocolBufferException(
13080                e.getMessage()).setUnfinishedMessage(this));
13081      } finally {
13082        this.unknownFields = unknownFields.build();
13083        makeExtensionsImmutable();
13084      }
13085    }
13086    public static final com.google.protobuf.Descriptors.Descriptor
13087        getDescriptor() {
13088      return org.sonar.batch.protocol.output.BatchReport.internal_static_CpdTextBlock_descriptor;
13089    }
13090
13091    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
13092        internalGetFieldAccessorTable() {
13093      return org.sonar.batch.protocol.output.BatchReport.internal_static_CpdTextBlock_fieldAccessorTable
13094          .ensureFieldAccessorsInitialized(
13095              org.sonar.batch.protocol.output.BatchReport.CpdTextBlock.class, org.sonar.batch.protocol.output.BatchReport.CpdTextBlock.Builder.class);
13096    }
13097
13098    private int bitField0_;
13099    public static final int HASH_FIELD_NUMBER = 1;
13100    private volatile java.lang.Object hash_;
13101    /**
13102     * <code>optional string hash = 1;</code>
13103     */
13104    public boolean hasHash() {
13105      return ((bitField0_ & 0x00000001) == 0x00000001);
13106    }
13107    /**
13108     * <code>optional string hash = 1;</code>
13109     */
13110    public java.lang.String getHash() {
13111      java.lang.Object ref = hash_;
13112      if (ref instanceof java.lang.String) {
13113        return (java.lang.String) ref;
13114      } else {
13115        com.google.protobuf.ByteString bs = 
13116            (com.google.protobuf.ByteString) ref;
13117        java.lang.String s = bs.toStringUtf8();
13118        if (bs.isValidUtf8()) {
13119          hash_ = s;
13120        }
13121        return s;
13122      }
13123    }
13124    /**
13125     * <code>optional string hash = 1;</code>
13126     */
13127    public com.google.protobuf.ByteString
13128        getHashBytes() {
13129      java.lang.Object ref = hash_;
13130      if (ref instanceof java.lang.String) {
13131        com.google.protobuf.ByteString b = 
13132            com.google.protobuf.ByteString.copyFromUtf8(
13133                (java.lang.String) ref);
13134        hash_ = b;
13135        return b;
13136      } else {
13137        return (com.google.protobuf.ByteString) ref;
13138      }
13139    }
13140
13141    public static final int START_LINE_FIELD_NUMBER = 2;
13142    private int startLine_;
13143    /**
13144     * <code>optional int32 start_line = 2;</code>
13145     */
13146    public boolean hasStartLine() {
13147      return ((bitField0_ & 0x00000002) == 0x00000002);
13148    }
13149    /**
13150     * <code>optional int32 start_line = 2;</code>
13151     */
13152    public int getStartLine() {
13153      return startLine_;
13154    }
13155
13156    public static final int END_LINE_FIELD_NUMBER = 3;
13157    private int endLine_;
13158    /**
13159     * <code>optional int32 end_line = 3;</code>
13160     */
13161    public boolean hasEndLine() {
13162      return ((bitField0_ & 0x00000004) == 0x00000004);
13163    }
13164    /**
13165     * <code>optional int32 end_line = 3;</code>
13166     */
13167    public int getEndLine() {
13168      return endLine_;
13169    }
13170
13171    public static final int START_TOKEN_INDEX_FIELD_NUMBER = 4;
13172    private int startTokenIndex_;
13173    /**
13174     * <code>optional int32 start_token_index = 4;</code>
13175     */
13176    public boolean hasStartTokenIndex() {
13177      return ((bitField0_ & 0x00000008) == 0x00000008);
13178    }
13179    /**
13180     * <code>optional int32 start_token_index = 4;</code>
13181     */
13182    public int getStartTokenIndex() {
13183      return startTokenIndex_;
13184    }
13185
13186    public static final int END_TOKEN_INDEX_FIELD_NUMBER = 5;
13187    private int endTokenIndex_;
13188    /**
13189     * <code>optional int32 end_token_index = 5;</code>
13190     */
13191    public boolean hasEndTokenIndex() {
13192      return ((bitField0_ & 0x00000010) == 0x00000010);
13193    }
13194    /**
13195     * <code>optional int32 end_token_index = 5;</code>
13196     */
13197    public int getEndTokenIndex() {
13198      return endTokenIndex_;
13199    }
13200
13201    private byte memoizedIsInitialized = -1;
13202    public final boolean isInitialized() {
13203      byte isInitialized = memoizedIsInitialized;
13204      if (isInitialized == 1) return true;
13205      if (isInitialized == 0) return false;
13206
13207      memoizedIsInitialized = 1;
13208      return true;
13209    }
13210
13211    public void writeTo(com.google.protobuf.CodedOutputStream output)
13212                        throws java.io.IOException {
13213      if (((bitField0_ & 0x00000001) == 0x00000001)) {
13214        com.google.protobuf.GeneratedMessage.writeString(output, 1, hash_);
13215      }
13216      if (((bitField0_ & 0x00000002) == 0x00000002)) {
13217        output.writeInt32(2, startLine_);
13218      }
13219      if (((bitField0_ & 0x00000004) == 0x00000004)) {
13220        output.writeInt32(3, endLine_);
13221      }
13222      if (((bitField0_ & 0x00000008) == 0x00000008)) {
13223        output.writeInt32(4, startTokenIndex_);
13224      }
13225      if (((bitField0_ & 0x00000010) == 0x00000010)) {
13226        output.writeInt32(5, endTokenIndex_);
13227      }
13228      unknownFields.writeTo(output);
13229    }
13230
13231    public int getSerializedSize() {
13232      int size = memoizedSize;
13233      if (size != -1) return size;
13234
13235      size = 0;
13236      if (((bitField0_ & 0x00000001) == 0x00000001)) {
13237        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, hash_);
13238      }
13239      if (((bitField0_ & 0x00000002) == 0x00000002)) {
13240        size += com.google.protobuf.CodedOutputStream
13241          .computeInt32Size(2, startLine_);
13242      }
13243      if (((bitField0_ & 0x00000004) == 0x00000004)) {
13244        size += com.google.protobuf.CodedOutputStream
13245          .computeInt32Size(3, endLine_);
13246      }
13247      if (((bitField0_ & 0x00000008) == 0x00000008)) {
13248        size += com.google.protobuf.CodedOutputStream
13249          .computeInt32Size(4, startTokenIndex_);
13250      }
13251      if (((bitField0_ & 0x00000010) == 0x00000010)) {
13252        size += com.google.protobuf.CodedOutputStream
13253          .computeInt32Size(5, endTokenIndex_);
13254      }
13255      size += unknownFields.getSerializedSize();
13256      memoizedSize = size;
13257      return size;
13258    }
13259
13260    private static final long serialVersionUID = 0L;
13261    public static org.sonar.batch.protocol.output.BatchReport.CpdTextBlock parseFrom(
13262        com.google.protobuf.ByteString data)
13263        throws com.google.protobuf.InvalidProtocolBufferException {
13264      return PARSER.parseFrom(data);
13265    }
13266    public static org.sonar.batch.protocol.output.BatchReport.CpdTextBlock parseFrom(
13267        com.google.protobuf.ByteString data,
13268        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13269        throws com.google.protobuf.InvalidProtocolBufferException {
13270      return PARSER.parseFrom(data, extensionRegistry);
13271    }
13272    public static org.sonar.batch.protocol.output.BatchReport.CpdTextBlock parseFrom(byte[] data)
13273        throws com.google.protobuf.InvalidProtocolBufferException {
13274      return PARSER.parseFrom(data);
13275    }
13276    public static org.sonar.batch.protocol.output.BatchReport.CpdTextBlock parseFrom(
13277        byte[] data,
13278        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13279        throws com.google.protobuf.InvalidProtocolBufferException {
13280      return PARSER.parseFrom(data, extensionRegistry);
13281    }
13282    public static org.sonar.batch.protocol.output.BatchReport.CpdTextBlock parseFrom(java.io.InputStream input)
13283        throws java.io.IOException {
13284      return PARSER.parseFrom(input);
13285    }
13286    public static org.sonar.batch.protocol.output.BatchReport.CpdTextBlock parseFrom(
13287        java.io.InputStream input,
13288        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13289        throws java.io.IOException {
13290      return PARSER.parseFrom(input, extensionRegistry);
13291    }
13292    public static org.sonar.batch.protocol.output.BatchReport.CpdTextBlock parseDelimitedFrom(java.io.InputStream input)
13293        throws java.io.IOException {
13294      return PARSER.parseDelimitedFrom(input);
13295    }
13296    public static org.sonar.batch.protocol.output.BatchReport.CpdTextBlock parseDelimitedFrom(
13297        java.io.InputStream input,
13298        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13299        throws java.io.IOException {
13300      return PARSER.parseDelimitedFrom(input, extensionRegistry);
13301    }
13302    public static org.sonar.batch.protocol.output.BatchReport.CpdTextBlock parseFrom(
13303        com.google.protobuf.CodedInputStream input)
13304        throws java.io.IOException {
13305      return PARSER.parseFrom(input);
13306    }
13307    public static org.sonar.batch.protocol.output.BatchReport.CpdTextBlock parseFrom(
13308        com.google.protobuf.CodedInputStream input,
13309        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13310        throws java.io.IOException {
13311      return PARSER.parseFrom(input, extensionRegistry);
13312    }
13313
13314    public Builder newBuilderForType() { return newBuilder(); }
13315    public static Builder newBuilder() {
13316      return DEFAULT_INSTANCE.toBuilder();
13317    }
13318    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.CpdTextBlock prototype) {
13319      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
13320    }
13321    public Builder toBuilder() {
13322      return this == DEFAULT_INSTANCE
13323          ? new Builder() : new Builder().mergeFrom(this);
13324    }
13325
13326    @java.lang.Override
13327    protected Builder newBuilderForType(
13328        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
13329      Builder builder = new Builder(parent);
13330      return builder;
13331    }
13332    /**
13333     * Protobuf type {@code CpdTextBlock}
13334     *
13335     * <pre>
13336     * Used for cross project duplication
13337     * </pre>
13338     */
13339    public static final class Builder extends
13340        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
13341        // @@protoc_insertion_point(builder_implements:CpdTextBlock)
13342        org.sonar.batch.protocol.output.BatchReport.CpdTextBlockOrBuilder {
13343      public static final com.google.protobuf.Descriptors.Descriptor
13344          getDescriptor() {
13345        return org.sonar.batch.protocol.output.BatchReport.internal_static_CpdTextBlock_descriptor;
13346      }
13347
13348      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
13349          internalGetFieldAccessorTable() {
13350        return org.sonar.batch.protocol.output.BatchReport.internal_static_CpdTextBlock_fieldAccessorTable
13351            .ensureFieldAccessorsInitialized(
13352                org.sonar.batch.protocol.output.BatchReport.CpdTextBlock.class, org.sonar.batch.protocol.output.BatchReport.CpdTextBlock.Builder.class);
13353      }
13354
13355      // Construct using org.sonar.batch.protocol.output.BatchReport.CpdTextBlock.newBuilder()
13356      private Builder() {
13357        maybeForceBuilderInitialization();
13358      }
13359
13360      private Builder(
13361          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
13362        super(parent);
13363        maybeForceBuilderInitialization();
13364      }
13365      private void maybeForceBuilderInitialization() {
13366        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
13367        }
13368      }
13369      public Builder clear() {
13370        super.clear();
13371        hash_ = "";
13372        bitField0_ = (bitField0_ & ~0x00000001);
13373        startLine_ = 0;
13374        bitField0_ = (bitField0_ & ~0x00000002);
13375        endLine_ = 0;
13376        bitField0_ = (bitField0_ & ~0x00000004);
13377        startTokenIndex_ = 0;
13378        bitField0_ = (bitField0_ & ~0x00000008);
13379        endTokenIndex_ = 0;
13380        bitField0_ = (bitField0_ & ~0x00000010);
13381        return this;
13382      }
13383
13384      public com.google.protobuf.Descriptors.Descriptor
13385          getDescriptorForType() {
13386        return org.sonar.batch.protocol.output.BatchReport.internal_static_CpdTextBlock_descriptor;
13387      }
13388
13389      public org.sonar.batch.protocol.output.BatchReport.CpdTextBlock getDefaultInstanceForType() {
13390        return org.sonar.batch.protocol.output.BatchReport.CpdTextBlock.getDefaultInstance();
13391      }
13392
13393      public org.sonar.batch.protocol.output.BatchReport.CpdTextBlock build() {
13394        org.sonar.batch.protocol.output.BatchReport.CpdTextBlock result = buildPartial();
13395        if (!result.isInitialized()) {
13396          throw newUninitializedMessageException(result);
13397        }
13398        return result;
13399      }
13400
13401      public org.sonar.batch.protocol.output.BatchReport.CpdTextBlock buildPartial() {
13402        org.sonar.batch.protocol.output.BatchReport.CpdTextBlock result = new org.sonar.batch.protocol.output.BatchReport.CpdTextBlock(this);
13403        int from_bitField0_ = bitField0_;
13404        int to_bitField0_ = 0;
13405        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
13406          to_bitField0_ |= 0x00000001;
13407        }
13408        result.hash_ = hash_;
13409        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
13410          to_bitField0_ |= 0x00000002;
13411        }
13412        result.startLine_ = startLine_;
13413        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
13414          to_bitField0_ |= 0x00000004;
13415        }
13416        result.endLine_ = endLine_;
13417        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
13418          to_bitField0_ |= 0x00000008;
13419        }
13420        result.startTokenIndex_ = startTokenIndex_;
13421        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
13422          to_bitField0_ |= 0x00000010;
13423        }
13424        result.endTokenIndex_ = endTokenIndex_;
13425        result.bitField0_ = to_bitField0_;
13426        onBuilt();
13427        return result;
13428      }
13429
13430      public Builder mergeFrom(com.google.protobuf.Message other) {
13431        if (other instanceof org.sonar.batch.protocol.output.BatchReport.CpdTextBlock) {
13432          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.CpdTextBlock)other);
13433        } else {
13434          super.mergeFrom(other);
13435          return this;
13436        }
13437      }
13438
13439      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.CpdTextBlock other) {
13440        if (other == org.sonar.batch.protocol.output.BatchReport.CpdTextBlock.getDefaultInstance()) return this;
13441        if (other.hasHash()) {
13442          bitField0_ |= 0x00000001;
13443          hash_ = other.hash_;
13444          onChanged();
13445        }
13446        if (other.hasStartLine()) {
13447          setStartLine(other.getStartLine());
13448        }
13449        if (other.hasEndLine()) {
13450          setEndLine(other.getEndLine());
13451        }
13452        if (other.hasStartTokenIndex()) {
13453          setStartTokenIndex(other.getStartTokenIndex());
13454        }
13455        if (other.hasEndTokenIndex()) {
13456          setEndTokenIndex(other.getEndTokenIndex());
13457        }
13458        this.mergeUnknownFields(other.unknownFields);
13459        onChanged();
13460        return this;
13461      }
13462
13463      public final boolean isInitialized() {
13464        return true;
13465      }
13466
13467      public Builder mergeFrom(
13468          com.google.protobuf.CodedInputStream input,
13469          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13470          throws java.io.IOException {
13471        org.sonar.batch.protocol.output.BatchReport.CpdTextBlock parsedMessage = null;
13472        try {
13473          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
13474        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
13475          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.CpdTextBlock) e.getUnfinishedMessage();
13476          throw e;
13477        } finally {
13478          if (parsedMessage != null) {
13479            mergeFrom(parsedMessage);
13480          }
13481        }
13482        return this;
13483      }
13484      private int bitField0_;
13485
13486      private java.lang.Object hash_ = "";
13487      /**
13488       * <code>optional string hash = 1;</code>
13489       */
13490      public boolean hasHash() {
13491        return ((bitField0_ & 0x00000001) == 0x00000001);
13492      }
13493      /**
13494       * <code>optional string hash = 1;</code>
13495       */
13496      public java.lang.String getHash() {
13497        java.lang.Object ref = hash_;
13498        if (!(ref instanceof java.lang.String)) {
13499          com.google.protobuf.ByteString bs =
13500              (com.google.protobuf.ByteString) ref;
13501          java.lang.String s = bs.toStringUtf8();
13502          if (bs.isValidUtf8()) {
13503            hash_ = s;
13504          }
13505          return s;
13506        } else {
13507          return (java.lang.String) ref;
13508        }
13509      }
13510      /**
13511       * <code>optional string hash = 1;</code>
13512       */
13513      public com.google.protobuf.ByteString
13514          getHashBytes() {
13515        java.lang.Object ref = hash_;
13516        if (ref instanceof String) {
13517          com.google.protobuf.ByteString b = 
13518              com.google.protobuf.ByteString.copyFromUtf8(
13519                  (java.lang.String) ref);
13520          hash_ = b;
13521          return b;
13522        } else {
13523          return (com.google.protobuf.ByteString) ref;
13524        }
13525      }
13526      /**
13527       * <code>optional string hash = 1;</code>
13528       */
13529      public Builder setHash(
13530          java.lang.String value) {
13531        if (value == null) {
13532    throw new NullPointerException();
13533  }
13534  bitField0_ |= 0x00000001;
13535        hash_ = value;
13536        onChanged();
13537        return this;
13538      }
13539      /**
13540       * <code>optional string hash = 1;</code>
13541       */
13542      public Builder clearHash() {
13543        bitField0_ = (bitField0_ & ~0x00000001);
13544        hash_ = getDefaultInstance().getHash();
13545        onChanged();
13546        return this;
13547      }
13548      /**
13549       * <code>optional string hash = 1;</code>
13550       */
13551      public Builder setHashBytes(
13552          com.google.protobuf.ByteString value) {
13553        if (value == null) {
13554    throw new NullPointerException();
13555  }
13556  bitField0_ |= 0x00000001;
13557        hash_ = value;
13558        onChanged();
13559        return this;
13560      }
13561
13562      private int startLine_ ;
13563      /**
13564       * <code>optional int32 start_line = 2;</code>
13565       */
13566      public boolean hasStartLine() {
13567        return ((bitField0_ & 0x00000002) == 0x00000002);
13568      }
13569      /**
13570       * <code>optional int32 start_line = 2;</code>
13571       */
13572      public int getStartLine() {
13573        return startLine_;
13574      }
13575      /**
13576       * <code>optional int32 start_line = 2;</code>
13577       */
13578      public Builder setStartLine(int value) {
13579        bitField0_ |= 0x00000002;
13580        startLine_ = value;
13581        onChanged();
13582        return this;
13583      }
13584      /**
13585       * <code>optional int32 start_line = 2;</code>
13586       */
13587      public Builder clearStartLine() {
13588        bitField0_ = (bitField0_ & ~0x00000002);
13589        startLine_ = 0;
13590        onChanged();
13591        return this;
13592      }
13593
13594      private int endLine_ ;
13595      /**
13596       * <code>optional int32 end_line = 3;</code>
13597       */
13598      public boolean hasEndLine() {
13599        return ((bitField0_ & 0x00000004) == 0x00000004);
13600      }
13601      /**
13602       * <code>optional int32 end_line = 3;</code>
13603       */
13604      public int getEndLine() {
13605        return endLine_;
13606      }
13607      /**
13608       * <code>optional int32 end_line = 3;</code>
13609       */
13610      public Builder setEndLine(int value) {
13611        bitField0_ |= 0x00000004;
13612        endLine_ = value;
13613        onChanged();
13614        return this;
13615      }
13616      /**
13617       * <code>optional int32 end_line = 3;</code>
13618       */
13619      public Builder clearEndLine() {
13620        bitField0_ = (bitField0_ & ~0x00000004);
13621        endLine_ = 0;
13622        onChanged();
13623        return this;
13624      }
13625
13626      private int startTokenIndex_ ;
13627      /**
13628       * <code>optional int32 start_token_index = 4;</code>
13629       */
13630      public boolean hasStartTokenIndex() {
13631        return ((bitField0_ & 0x00000008) == 0x00000008);
13632      }
13633      /**
13634       * <code>optional int32 start_token_index = 4;</code>
13635       */
13636      public int getStartTokenIndex() {
13637        return startTokenIndex_;
13638      }
13639      /**
13640       * <code>optional int32 start_token_index = 4;</code>
13641       */
13642      public Builder setStartTokenIndex(int value) {
13643        bitField0_ |= 0x00000008;
13644        startTokenIndex_ = value;
13645        onChanged();
13646        return this;
13647      }
13648      /**
13649       * <code>optional int32 start_token_index = 4;</code>
13650       */
13651      public Builder clearStartTokenIndex() {
13652        bitField0_ = (bitField0_ & ~0x00000008);
13653        startTokenIndex_ = 0;
13654        onChanged();
13655        return this;
13656      }
13657
13658      private int endTokenIndex_ ;
13659      /**
13660       * <code>optional int32 end_token_index = 5;</code>
13661       */
13662      public boolean hasEndTokenIndex() {
13663        return ((bitField0_ & 0x00000010) == 0x00000010);
13664      }
13665      /**
13666       * <code>optional int32 end_token_index = 5;</code>
13667       */
13668      public int getEndTokenIndex() {
13669        return endTokenIndex_;
13670      }
13671      /**
13672       * <code>optional int32 end_token_index = 5;</code>
13673       */
13674      public Builder setEndTokenIndex(int value) {
13675        bitField0_ |= 0x00000010;
13676        endTokenIndex_ = value;
13677        onChanged();
13678        return this;
13679      }
13680      /**
13681       * <code>optional int32 end_token_index = 5;</code>
13682       */
13683      public Builder clearEndTokenIndex() {
13684        bitField0_ = (bitField0_ & ~0x00000010);
13685        endTokenIndex_ = 0;
13686        onChanged();
13687        return this;
13688      }
13689
13690      // @@protoc_insertion_point(builder_scope:CpdTextBlock)
13691    }
13692
13693    // @@protoc_insertion_point(class_scope:CpdTextBlock)
13694    private static final org.sonar.batch.protocol.output.BatchReport.CpdTextBlock DEFAULT_INSTANCE;
13695    static {
13696      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.CpdTextBlock();
13697    }
13698
13699    public static org.sonar.batch.protocol.output.BatchReport.CpdTextBlock getDefaultInstance() {
13700      return DEFAULT_INSTANCE;
13701    }
13702
13703    @java.lang.Deprecated public static final com.google.protobuf.Parser<CpdTextBlock>
13704        PARSER = new com.google.protobuf.AbstractParser<CpdTextBlock>() {
13705      public CpdTextBlock parsePartialFrom(
13706          com.google.protobuf.CodedInputStream input,
13707          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
13708          throws com.google.protobuf.InvalidProtocolBufferException {
13709        try {
13710          return new CpdTextBlock(input, extensionRegistry);
13711        } catch (RuntimeException e) {
13712          if (e.getCause() instanceof
13713              com.google.protobuf.InvalidProtocolBufferException) {
13714            throw (com.google.protobuf.InvalidProtocolBufferException)
13715                e.getCause();
13716          }
13717          throw e;
13718        }
13719      }
13720    };
13721
13722    public static com.google.protobuf.Parser<CpdTextBlock> parser() {
13723      return PARSER;
13724    }
13725
13726    @java.lang.Override
13727    public com.google.protobuf.Parser<CpdTextBlock> getParserForType() {
13728      return PARSER;
13729    }
13730
13731    public org.sonar.batch.protocol.output.BatchReport.CpdTextBlock getDefaultInstanceForType() {
13732      return DEFAULT_INSTANCE;
13733    }
13734
13735  }
13736
13737  public interface TextRangeOrBuilder extends
13738      // @@protoc_insertion_point(interface_extends:TextRange)
13739      com.google.protobuf.MessageOrBuilder {
13740
13741    /**
13742     * <code>optional int32 start_line = 1;</code>
13743     *
13744     * <pre>
13745     * Should never be null
13746     * </pre>
13747     */
13748    boolean hasStartLine();
13749    /**
13750     * <code>optional int32 start_line = 1;</code>
13751     *
13752     * <pre>
13753     * Should never be null
13754     * </pre>
13755     */
13756    int getStartLine();
13757
13758    /**
13759     * <code>optional int32 end_line = 2;</code>
13760     *
13761     * <pre>
13762     * End line (inclusive)
13763     * </pre>
13764     */
13765    boolean hasEndLine();
13766    /**
13767     * <code>optional int32 end_line = 2;</code>
13768     *
13769     * <pre>
13770     * End line (inclusive)
13771     * </pre>
13772     */
13773    int getEndLine();
13774
13775    /**
13776     * <code>optional int32 start_offset = 3;</code>
13777     *
13778     * <pre>
13779     * If null it means range starts at the first offset of start line
13780     * </pre>
13781     */
13782    boolean hasStartOffset();
13783    /**
13784     * <code>optional int32 start_offset = 3;</code>
13785     *
13786     * <pre>
13787     * If null it means range starts at the first offset of start line
13788     * </pre>
13789     */
13790    int getStartOffset();
13791
13792    /**
13793     * <code>optional int32 end_offset = 4;</code>
13794     *
13795     * <pre>
13796     * If null it means range ends at the last offset of end line
13797     * </pre>
13798     */
13799    boolean hasEndOffset();
13800    /**
13801     * <code>optional int32 end_offset = 4;</code>
13802     *
13803     * <pre>
13804     * If null it means range ends at the last offset of end line
13805     * </pre>
13806     */
13807    int getEndOffset();
13808  }
13809  /**
13810   * Protobuf type {@code TextRange}
13811   *
13812   * <pre>
13813   * Lines start at 1 and line offsets start at 0
13814   * </pre>
13815   */
13816  public  static final class TextRange extends
13817      com.google.protobuf.GeneratedMessage implements
13818      // @@protoc_insertion_point(message_implements:TextRange)
13819      TextRangeOrBuilder {
13820    // Use TextRange.newBuilder() to construct.
13821    private TextRange(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
13822      super(builder);
13823    }
13824    private TextRange() {
13825      startLine_ = 0;
13826      endLine_ = 0;
13827      startOffset_ = 0;
13828      endOffset_ = 0;
13829    }
13830
13831    @java.lang.Override
13832    public final com.google.protobuf.UnknownFieldSet
13833    getUnknownFields() {
13834      return this.unknownFields;
13835    }
13836    private TextRange(
13837        com.google.protobuf.CodedInputStream input,
13838        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
13839      this();
13840      int mutable_bitField0_ = 0;
13841      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
13842          com.google.protobuf.UnknownFieldSet.newBuilder();
13843      try {
13844        boolean done = false;
13845        while (!done) {
13846          int tag = input.readTag();
13847          switch (tag) {
13848            case 0:
13849              done = true;
13850              break;
13851            default: {
13852              if (!parseUnknownField(input, unknownFields,
13853                                     extensionRegistry, tag)) {
13854                done = true;
13855              }
13856              break;
13857            }
13858            case 8: {
13859              bitField0_ |= 0x00000001;
13860              startLine_ = input.readInt32();
13861              break;
13862            }
13863            case 16: {
13864              bitField0_ |= 0x00000002;
13865              endLine_ = input.readInt32();
13866              break;
13867            }
13868            case 24: {
13869              bitField0_ |= 0x00000004;
13870              startOffset_ = input.readInt32();
13871              break;
13872            }
13873            case 32: {
13874              bitField0_ |= 0x00000008;
13875              endOffset_ = input.readInt32();
13876              break;
13877            }
13878          }
13879        }
13880      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
13881        throw new RuntimeException(e.setUnfinishedMessage(this));
13882      } catch (java.io.IOException e) {
13883        throw new RuntimeException(
13884            new com.google.protobuf.InvalidProtocolBufferException(
13885                e.getMessage()).setUnfinishedMessage(this));
13886      } finally {
13887        this.unknownFields = unknownFields.build();
13888        makeExtensionsImmutable();
13889      }
13890    }
13891    public static final com.google.protobuf.Descriptors.Descriptor
13892        getDescriptor() {
13893      return org.sonar.batch.protocol.output.BatchReport.internal_static_TextRange_descriptor;
13894    }
13895
13896    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
13897        internalGetFieldAccessorTable() {
13898      return org.sonar.batch.protocol.output.BatchReport.internal_static_TextRange_fieldAccessorTable
13899          .ensureFieldAccessorsInitialized(
13900              org.sonar.batch.protocol.output.BatchReport.TextRange.class, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder.class);
13901    }
13902
13903    private int bitField0_;
13904    public static final int START_LINE_FIELD_NUMBER = 1;
13905    private int startLine_;
13906    /**
13907     * <code>optional int32 start_line = 1;</code>
13908     *
13909     * <pre>
13910     * Should never be null
13911     * </pre>
13912     */
13913    public boolean hasStartLine() {
13914      return ((bitField0_ & 0x00000001) == 0x00000001);
13915    }
13916    /**
13917     * <code>optional int32 start_line = 1;</code>
13918     *
13919     * <pre>
13920     * Should never be null
13921     * </pre>
13922     */
13923    public int getStartLine() {
13924      return startLine_;
13925    }
13926
13927    public static final int END_LINE_FIELD_NUMBER = 2;
13928    private int endLine_;
13929    /**
13930     * <code>optional int32 end_line = 2;</code>
13931     *
13932     * <pre>
13933     * End line (inclusive)
13934     * </pre>
13935     */
13936    public boolean hasEndLine() {
13937      return ((bitField0_ & 0x00000002) == 0x00000002);
13938    }
13939    /**
13940     * <code>optional int32 end_line = 2;</code>
13941     *
13942     * <pre>
13943     * End line (inclusive)
13944     * </pre>
13945     */
13946    public int getEndLine() {
13947      return endLine_;
13948    }
13949
13950    public static final int START_OFFSET_FIELD_NUMBER = 3;
13951    private int startOffset_;
13952    /**
13953     * <code>optional int32 start_offset = 3;</code>
13954     *
13955     * <pre>
13956     * If null it means range starts at the first offset of start line
13957     * </pre>
13958     */
13959    public boolean hasStartOffset() {
13960      return ((bitField0_ & 0x00000004) == 0x00000004);
13961    }
13962    /**
13963     * <code>optional int32 start_offset = 3;</code>
13964     *
13965     * <pre>
13966     * If null it means range starts at the first offset of start line
13967     * </pre>
13968     */
13969    public int getStartOffset() {
13970      return startOffset_;
13971    }
13972
13973    public static final int END_OFFSET_FIELD_NUMBER = 4;
13974    private int endOffset_;
13975    /**
13976     * <code>optional int32 end_offset = 4;</code>
13977     *
13978     * <pre>
13979     * If null it means range ends at the last offset of end line
13980     * </pre>
13981     */
13982    public boolean hasEndOffset() {
13983      return ((bitField0_ & 0x00000008) == 0x00000008);
13984    }
13985    /**
13986     * <code>optional int32 end_offset = 4;</code>
13987     *
13988     * <pre>
13989     * If null it means range ends at the last offset of end line
13990     * </pre>
13991     */
13992    public int getEndOffset() {
13993      return endOffset_;
13994    }
13995
13996    private byte memoizedIsInitialized = -1;
13997    public final boolean isInitialized() {
13998      byte isInitialized = memoizedIsInitialized;
13999      if (isInitialized == 1) return true;
14000      if (isInitialized == 0) return false;
14001
14002      memoizedIsInitialized = 1;
14003      return true;
14004    }
14005
14006    public void writeTo(com.google.protobuf.CodedOutputStream output)
14007                        throws java.io.IOException {
14008      if (((bitField0_ & 0x00000001) == 0x00000001)) {
14009        output.writeInt32(1, startLine_);
14010      }
14011      if (((bitField0_ & 0x00000002) == 0x00000002)) {
14012        output.writeInt32(2, endLine_);
14013      }
14014      if (((bitField0_ & 0x00000004) == 0x00000004)) {
14015        output.writeInt32(3, startOffset_);
14016      }
14017      if (((bitField0_ & 0x00000008) == 0x00000008)) {
14018        output.writeInt32(4, endOffset_);
14019      }
14020      unknownFields.writeTo(output);
14021    }
14022
14023    public int getSerializedSize() {
14024      int size = memoizedSize;
14025      if (size != -1) return size;
14026
14027      size = 0;
14028      if (((bitField0_ & 0x00000001) == 0x00000001)) {
14029        size += com.google.protobuf.CodedOutputStream
14030          .computeInt32Size(1, startLine_);
14031      }
14032      if (((bitField0_ & 0x00000002) == 0x00000002)) {
14033        size += com.google.protobuf.CodedOutputStream
14034          .computeInt32Size(2, endLine_);
14035      }
14036      if (((bitField0_ & 0x00000004) == 0x00000004)) {
14037        size += com.google.protobuf.CodedOutputStream
14038          .computeInt32Size(3, startOffset_);
14039      }
14040      if (((bitField0_ & 0x00000008) == 0x00000008)) {
14041        size += com.google.protobuf.CodedOutputStream
14042          .computeInt32Size(4, endOffset_);
14043      }
14044      size += unknownFields.getSerializedSize();
14045      memoizedSize = size;
14046      return size;
14047    }
14048
14049    private static final long serialVersionUID = 0L;
14050    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(
14051        com.google.protobuf.ByteString data)
14052        throws com.google.protobuf.InvalidProtocolBufferException {
14053      return PARSER.parseFrom(data);
14054    }
14055    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(
14056        com.google.protobuf.ByteString data,
14057        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14058        throws com.google.protobuf.InvalidProtocolBufferException {
14059      return PARSER.parseFrom(data, extensionRegistry);
14060    }
14061    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(byte[] data)
14062        throws com.google.protobuf.InvalidProtocolBufferException {
14063      return PARSER.parseFrom(data);
14064    }
14065    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(
14066        byte[] data,
14067        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14068        throws com.google.protobuf.InvalidProtocolBufferException {
14069      return PARSER.parseFrom(data, extensionRegistry);
14070    }
14071    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(java.io.InputStream input)
14072        throws java.io.IOException {
14073      return PARSER.parseFrom(input);
14074    }
14075    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(
14076        java.io.InputStream input,
14077        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14078        throws java.io.IOException {
14079      return PARSER.parseFrom(input, extensionRegistry);
14080    }
14081    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseDelimitedFrom(java.io.InputStream input)
14082        throws java.io.IOException {
14083      return PARSER.parseDelimitedFrom(input);
14084    }
14085    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseDelimitedFrom(
14086        java.io.InputStream input,
14087        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14088        throws java.io.IOException {
14089      return PARSER.parseDelimitedFrom(input, extensionRegistry);
14090    }
14091    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(
14092        com.google.protobuf.CodedInputStream input)
14093        throws java.io.IOException {
14094      return PARSER.parseFrom(input);
14095    }
14096    public static org.sonar.batch.protocol.output.BatchReport.TextRange parseFrom(
14097        com.google.protobuf.CodedInputStream input,
14098        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14099        throws java.io.IOException {
14100      return PARSER.parseFrom(input, extensionRegistry);
14101    }
14102
14103    public Builder newBuilderForType() { return newBuilder(); }
14104    public static Builder newBuilder() {
14105      return DEFAULT_INSTANCE.toBuilder();
14106    }
14107    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.TextRange prototype) {
14108      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
14109    }
14110    public Builder toBuilder() {
14111      return this == DEFAULT_INSTANCE
14112          ? new Builder() : new Builder().mergeFrom(this);
14113    }
14114
14115    @java.lang.Override
14116    protected Builder newBuilderForType(
14117        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
14118      Builder builder = new Builder(parent);
14119      return builder;
14120    }
14121    /**
14122     * Protobuf type {@code TextRange}
14123     *
14124     * <pre>
14125     * Lines start at 1 and line offsets start at 0
14126     * </pre>
14127     */
14128    public static final class Builder extends
14129        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
14130        // @@protoc_insertion_point(builder_implements:TextRange)
14131        org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder {
14132      public static final com.google.protobuf.Descriptors.Descriptor
14133          getDescriptor() {
14134        return org.sonar.batch.protocol.output.BatchReport.internal_static_TextRange_descriptor;
14135      }
14136
14137      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
14138          internalGetFieldAccessorTable() {
14139        return org.sonar.batch.protocol.output.BatchReport.internal_static_TextRange_fieldAccessorTable
14140            .ensureFieldAccessorsInitialized(
14141                org.sonar.batch.protocol.output.BatchReport.TextRange.class, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder.class);
14142      }
14143
14144      // Construct using org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder()
14145      private Builder() {
14146        maybeForceBuilderInitialization();
14147      }
14148
14149      private Builder(
14150          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
14151        super(parent);
14152        maybeForceBuilderInitialization();
14153      }
14154      private void maybeForceBuilderInitialization() {
14155        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
14156        }
14157      }
14158      public Builder clear() {
14159        super.clear();
14160        startLine_ = 0;
14161        bitField0_ = (bitField0_ & ~0x00000001);
14162        endLine_ = 0;
14163        bitField0_ = (bitField0_ & ~0x00000002);
14164        startOffset_ = 0;
14165        bitField0_ = (bitField0_ & ~0x00000004);
14166        endOffset_ = 0;
14167        bitField0_ = (bitField0_ & ~0x00000008);
14168        return this;
14169      }
14170
14171      public com.google.protobuf.Descriptors.Descriptor
14172          getDescriptorForType() {
14173        return org.sonar.batch.protocol.output.BatchReport.internal_static_TextRange_descriptor;
14174      }
14175
14176      public org.sonar.batch.protocol.output.BatchReport.TextRange getDefaultInstanceForType() {
14177        return org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance();
14178      }
14179
14180      public org.sonar.batch.protocol.output.BatchReport.TextRange build() {
14181        org.sonar.batch.protocol.output.BatchReport.TextRange result = buildPartial();
14182        if (!result.isInitialized()) {
14183          throw newUninitializedMessageException(result);
14184        }
14185        return result;
14186      }
14187
14188      public org.sonar.batch.protocol.output.BatchReport.TextRange buildPartial() {
14189        org.sonar.batch.protocol.output.BatchReport.TextRange result = new org.sonar.batch.protocol.output.BatchReport.TextRange(this);
14190        int from_bitField0_ = bitField0_;
14191        int to_bitField0_ = 0;
14192        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
14193          to_bitField0_ |= 0x00000001;
14194        }
14195        result.startLine_ = startLine_;
14196        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
14197          to_bitField0_ |= 0x00000002;
14198        }
14199        result.endLine_ = endLine_;
14200        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
14201          to_bitField0_ |= 0x00000004;
14202        }
14203        result.startOffset_ = startOffset_;
14204        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
14205          to_bitField0_ |= 0x00000008;
14206        }
14207        result.endOffset_ = endOffset_;
14208        result.bitField0_ = to_bitField0_;
14209        onBuilt();
14210        return result;
14211      }
14212
14213      public Builder mergeFrom(com.google.protobuf.Message other) {
14214        if (other instanceof org.sonar.batch.protocol.output.BatchReport.TextRange) {
14215          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.TextRange)other);
14216        } else {
14217          super.mergeFrom(other);
14218          return this;
14219        }
14220      }
14221
14222      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.TextRange other) {
14223        if (other == org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) return this;
14224        if (other.hasStartLine()) {
14225          setStartLine(other.getStartLine());
14226        }
14227        if (other.hasEndLine()) {
14228          setEndLine(other.getEndLine());
14229        }
14230        if (other.hasStartOffset()) {
14231          setStartOffset(other.getStartOffset());
14232        }
14233        if (other.hasEndOffset()) {
14234          setEndOffset(other.getEndOffset());
14235        }
14236        this.mergeUnknownFields(other.unknownFields);
14237        onChanged();
14238        return this;
14239      }
14240
14241      public final boolean isInitialized() {
14242        return true;
14243      }
14244
14245      public Builder mergeFrom(
14246          com.google.protobuf.CodedInputStream input,
14247          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14248          throws java.io.IOException {
14249        org.sonar.batch.protocol.output.BatchReport.TextRange parsedMessage = null;
14250        try {
14251          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
14252        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
14253          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.TextRange) e.getUnfinishedMessage();
14254          throw e;
14255        } finally {
14256          if (parsedMessage != null) {
14257            mergeFrom(parsedMessage);
14258          }
14259        }
14260        return this;
14261      }
14262      private int bitField0_;
14263
14264      private int startLine_ ;
14265      /**
14266       * <code>optional int32 start_line = 1;</code>
14267       *
14268       * <pre>
14269       * Should never be null
14270       * </pre>
14271       */
14272      public boolean hasStartLine() {
14273        return ((bitField0_ & 0x00000001) == 0x00000001);
14274      }
14275      /**
14276       * <code>optional int32 start_line = 1;</code>
14277       *
14278       * <pre>
14279       * Should never be null
14280       * </pre>
14281       */
14282      public int getStartLine() {
14283        return startLine_;
14284      }
14285      /**
14286       * <code>optional int32 start_line = 1;</code>
14287       *
14288       * <pre>
14289       * Should never be null
14290       * </pre>
14291       */
14292      public Builder setStartLine(int value) {
14293        bitField0_ |= 0x00000001;
14294        startLine_ = value;
14295        onChanged();
14296        return this;
14297      }
14298      /**
14299       * <code>optional int32 start_line = 1;</code>
14300       *
14301       * <pre>
14302       * Should never be null
14303       * </pre>
14304       */
14305      public Builder clearStartLine() {
14306        bitField0_ = (bitField0_ & ~0x00000001);
14307        startLine_ = 0;
14308        onChanged();
14309        return this;
14310      }
14311
14312      private int endLine_ ;
14313      /**
14314       * <code>optional int32 end_line = 2;</code>
14315       *
14316       * <pre>
14317       * End line (inclusive)
14318       * </pre>
14319       */
14320      public boolean hasEndLine() {
14321        return ((bitField0_ & 0x00000002) == 0x00000002);
14322      }
14323      /**
14324       * <code>optional int32 end_line = 2;</code>
14325       *
14326       * <pre>
14327       * End line (inclusive)
14328       * </pre>
14329       */
14330      public int getEndLine() {
14331        return endLine_;
14332      }
14333      /**
14334       * <code>optional int32 end_line = 2;</code>
14335       *
14336       * <pre>
14337       * End line (inclusive)
14338       * </pre>
14339       */
14340      public Builder setEndLine(int value) {
14341        bitField0_ |= 0x00000002;
14342        endLine_ = value;
14343        onChanged();
14344        return this;
14345      }
14346      /**
14347       * <code>optional int32 end_line = 2;</code>
14348       *
14349       * <pre>
14350       * End line (inclusive)
14351       * </pre>
14352       */
14353      public Builder clearEndLine() {
14354        bitField0_ = (bitField0_ & ~0x00000002);
14355        endLine_ = 0;
14356        onChanged();
14357        return this;
14358      }
14359
14360      private int startOffset_ ;
14361      /**
14362       * <code>optional int32 start_offset = 3;</code>
14363       *
14364       * <pre>
14365       * If null it means range starts at the first offset of start line
14366       * </pre>
14367       */
14368      public boolean hasStartOffset() {
14369        return ((bitField0_ & 0x00000004) == 0x00000004);
14370      }
14371      /**
14372       * <code>optional int32 start_offset = 3;</code>
14373       *
14374       * <pre>
14375       * If null it means range starts at the first offset of start line
14376       * </pre>
14377       */
14378      public int getStartOffset() {
14379        return startOffset_;
14380      }
14381      /**
14382       * <code>optional int32 start_offset = 3;</code>
14383       *
14384       * <pre>
14385       * If null it means range starts at the first offset of start line
14386       * </pre>
14387       */
14388      public Builder setStartOffset(int value) {
14389        bitField0_ |= 0x00000004;
14390        startOffset_ = value;
14391        onChanged();
14392        return this;
14393      }
14394      /**
14395       * <code>optional int32 start_offset = 3;</code>
14396       *
14397       * <pre>
14398       * If null it means range starts at the first offset of start line
14399       * </pre>
14400       */
14401      public Builder clearStartOffset() {
14402        bitField0_ = (bitField0_ & ~0x00000004);
14403        startOffset_ = 0;
14404        onChanged();
14405        return this;
14406      }
14407
14408      private int endOffset_ ;
14409      /**
14410       * <code>optional int32 end_offset = 4;</code>
14411       *
14412       * <pre>
14413       * If null it means range ends at the last offset of end line
14414       * </pre>
14415       */
14416      public boolean hasEndOffset() {
14417        return ((bitField0_ & 0x00000008) == 0x00000008);
14418      }
14419      /**
14420       * <code>optional int32 end_offset = 4;</code>
14421       *
14422       * <pre>
14423       * If null it means range ends at the last offset of end line
14424       * </pre>
14425       */
14426      public int getEndOffset() {
14427        return endOffset_;
14428      }
14429      /**
14430       * <code>optional int32 end_offset = 4;</code>
14431       *
14432       * <pre>
14433       * If null it means range ends at the last offset of end line
14434       * </pre>
14435       */
14436      public Builder setEndOffset(int value) {
14437        bitField0_ |= 0x00000008;
14438        endOffset_ = value;
14439        onChanged();
14440        return this;
14441      }
14442      /**
14443       * <code>optional int32 end_offset = 4;</code>
14444       *
14445       * <pre>
14446       * If null it means range ends at the last offset of end line
14447       * </pre>
14448       */
14449      public Builder clearEndOffset() {
14450        bitField0_ = (bitField0_ & ~0x00000008);
14451        endOffset_ = 0;
14452        onChanged();
14453        return this;
14454      }
14455
14456      // @@protoc_insertion_point(builder_scope:TextRange)
14457    }
14458
14459    // @@protoc_insertion_point(class_scope:TextRange)
14460    private static final org.sonar.batch.protocol.output.BatchReport.TextRange DEFAULT_INSTANCE;
14461    static {
14462      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.TextRange();
14463    }
14464
14465    public static org.sonar.batch.protocol.output.BatchReport.TextRange getDefaultInstance() {
14466      return DEFAULT_INSTANCE;
14467    }
14468
14469    @java.lang.Deprecated public static final com.google.protobuf.Parser<TextRange>
14470        PARSER = new com.google.protobuf.AbstractParser<TextRange>() {
14471      public TextRange parsePartialFrom(
14472          com.google.protobuf.CodedInputStream input,
14473          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14474          throws com.google.protobuf.InvalidProtocolBufferException {
14475        try {
14476          return new TextRange(input, extensionRegistry);
14477        } catch (RuntimeException e) {
14478          if (e.getCause() instanceof
14479              com.google.protobuf.InvalidProtocolBufferException) {
14480            throw (com.google.protobuf.InvalidProtocolBufferException)
14481                e.getCause();
14482          }
14483          throw e;
14484        }
14485      }
14486    };
14487
14488    public static com.google.protobuf.Parser<TextRange> parser() {
14489      return PARSER;
14490    }
14491
14492    @java.lang.Override
14493    public com.google.protobuf.Parser<TextRange> getParserForType() {
14494      return PARSER;
14495    }
14496
14497    public org.sonar.batch.protocol.output.BatchReport.TextRange getDefaultInstanceForType() {
14498      return DEFAULT_INSTANCE;
14499    }
14500
14501  }
14502
14503  public interface SymbolOrBuilder extends
14504      // @@protoc_insertion_point(interface_extends:Symbol)
14505      com.google.protobuf.MessageOrBuilder {
14506
14507    /**
14508     * <code>optional .TextRange declaration = 1;</code>
14509     */
14510    boolean hasDeclaration();
14511    /**
14512     * <code>optional .TextRange declaration = 1;</code>
14513     */
14514    org.sonar.batch.protocol.output.BatchReport.TextRange getDeclaration();
14515    /**
14516     * <code>optional .TextRange declaration = 1;</code>
14517     */
14518    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getDeclarationOrBuilder();
14519
14520    /**
14521     * <code>repeated .TextRange reference = 2;</code>
14522     */
14523    java.util.List<org.sonar.batch.protocol.output.BatchReport.TextRange> 
14524        getReferenceList();
14525    /**
14526     * <code>repeated .TextRange reference = 2;</code>
14527     */
14528    org.sonar.batch.protocol.output.BatchReport.TextRange getReference(int index);
14529    /**
14530     * <code>repeated .TextRange reference = 2;</code>
14531     */
14532    int getReferenceCount();
14533    /**
14534     * <code>repeated .TextRange reference = 2;</code>
14535     */
14536    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
14537        getReferenceOrBuilderList();
14538    /**
14539     * <code>repeated .TextRange reference = 2;</code>
14540     */
14541    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getReferenceOrBuilder(
14542        int index);
14543  }
14544  /**
14545   * Protobuf type {@code Symbol}
14546   */
14547  public  static final class Symbol extends
14548      com.google.protobuf.GeneratedMessage implements
14549      // @@protoc_insertion_point(message_implements:Symbol)
14550      SymbolOrBuilder {
14551    // Use Symbol.newBuilder() to construct.
14552    private Symbol(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
14553      super(builder);
14554    }
14555    private Symbol() {
14556      reference_ = java.util.Collections.emptyList();
14557    }
14558
14559    @java.lang.Override
14560    public final com.google.protobuf.UnknownFieldSet
14561    getUnknownFields() {
14562      return this.unknownFields;
14563    }
14564    private Symbol(
14565        com.google.protobuf.CodedInputStream input,
14566        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
14567      this();
14568      int mutable_bitField0_ = 0;
14569      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
14570          com.google.protobuf.UnknownFieldSet.newBuilder();
14571      try {
14572        boolean done = false;
14573        while (!done) {
14574          int tag = input.readTag();
14575          switch (tag) {
14576            case 0:
14577              done = true;
14578              break;
14579            default: {
14580              if (!parseUnknownField(input, unknownFields,
14581                                     extensionRegistry, tag)) {
14582                done = true;
14583              }
14584              break;
14585            }
14586            case 10: {
14587              org.sonar.batch.protocol.output.BatchReport.TextRange.Builder subBuilder = null;
14588              if (((bitField0_ & 0x00000001) == 0x00000001)) {
14589                subBuilder = declaration_.toBuilder();
14590              }
14591              declaration_ = input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.parser(), extensionRegistry);
14592              if (subBuilder != null) {
14593                subBuilder.mergeFrom(declaration_);
14594                declaration_ = subBuilder.buildPartial();
14595              }
14596              bitField0_ |= 0x00000001;
14597              break;
14598            }
14599            case 18: {
14600              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
14601                reference_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.TextRange>();
14602                mutable_bitField0_ |= 0x00000002;
14603              }
14604              reference_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.parser(), extensionRegistry));
14605              break;
14606            }
14607          }
14608        }
14609      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
14610        throw new RuntimeException(e.setUnfinishedMessage(this));
14611      } catch (java.io.IOException e) {
14612        throw new RuntimeException(
14613            new com.google.protobuf.InvalidProtocolBufferException(
14614                e.getMessage()).setUnfinishedMessage(this));
14615      } finally {
14616        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
14617          reference_ = java.util.Collections.unmodifiableList(reference_);
14618        }
14619        this.unknownFields = unknownFields.build();
14620        makeExtensionsImmutable();
14621      }
14622    }
14623    public static final com.google.protobuf.Descriptors.Descriptor
14624        getDescriptor() {
14625      return org.sonar.batch.protocol.output.BatchReport.internal_static_Symbol_descriptor;
14626    }
14627
14628    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
14629        internalGetFieldAccessorTable() {
14630      return org.sonar.batch.protocol.output.BatchReport.internal_static_Symbol_fieldAccessorTable
14631          .ensureFieldAccessorsInitialized(
14632              org.sonar.batch.protocol.output.BatchReport.Symbol.class, org.sonar.batch.protocol.output.BatchReport.Symbol.Builder.class);
14633    }
14634
14635    private int bitField0_;
14636    public static final int DECLARATION_FIELD_NUMBER = 1;
14637    private org.sonar.batch.protocol.output.BatchReport.TextRange declaration_;
14638    /**
14639     * <code>optional .TextRange declaration = 1;</code>
14640     */
14641    public boolean hasDeclaration() {
14642      return ((bitField0_ & 0x00000001) == 0x00000001);
14643    }
14644    /**
14645     * <code>optional .TextRange declaration = 1;</code>
14646     */
14647    public org.sonar.batch.protocol.output.BatchReport.TextRange getDeclaration() {
14648      return declaration_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : declaration_;
14649    }
14650    /**
14651     * <code>optional .TextRange declaration = 1;</code>
14652     */
14653    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getDeclarationOrBuilder() {
14654      return declaration_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : declaration_;
14655    }
14656
14657    public static final int REFERENCE_FIELD_NUMBER = 2;
14658    private java.util.List<org.sonar.batch.protocol.output.BatchReport.TextRange> reference_;
14659    /**
14660     * <code>repeated .TextRange reference = 2;</code>
14661     */
14662    public java.util.List<org.sonar.batch.protocol.output.BatchReport.TextRange> getReferenceList() {
14663      return reference_;
14664    }
14665    /**
14666     * <code>repeated .TextRange reference = 2;</code>
14667     */
14668    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
14669        getReferenceOrBuilderList() {
14670      return reference_;
14671    }
14672    /**
14673     * <code>repeated .TextRange reference = 2;</code>
14674     */
14675    public int getReferenceCount() {
14676      return reference_.size();
14677    }
14678    /**
14679     * <code>repeated .TextRange reference = 2;</code>
14680     */
14681    public org.sonar.batch.protocol.output.BatchReport.TextRange getReference(int index) {
14682      return reference_.get(index);
14683    }
14684    /**
14685     * <code>repeated .TextRange reference = 2;</code>
14686     */
14687    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getReferenceOrBuilder(
14688        int index) {
14689      return reference_.get(index);
14690    }
14691
14692    private byte memoizedIsInitialized = -1;
14693    public final boolean isInitialized() {
14694      byte isInitialized = memoizedIsInitialized;
14695      if (isInitialized == 1) return true;
14696      if (isInitialized == 0) return false;
14697
14698      memoizedIsInitialized = 1;
14699      return true;
14700    }
14701
14702    public void writeTo(com.google.protobuf.CodedOutputStream output)
14703                        throws java.io.IOException {
14704      if (((bitField0_ & 0x00000001) == 0x00000001)) {
14705        output.writeMessage(1, getDeclaration());
14706      }
14707      for (int i = 0; i < reference_.size(); i++) {
14708        output.writeMessage(2, reference_.get(i));
14709      }
14710      unknownFields.writeTo(output);
14711    }
14712
14713    public int getSerializedSize() {
14714      int size = memoizedSize;
14715      if (size != -1) return size;
14716
14717      size = 0;
14718      if (((bitField0_ & 0x00000001) == 0x00000001)) {
14719        size += com.google.protobuf.CodedOutputStream
14720          .computeMessageSize(1, getDeclaration());
14721      }
14722      for (int i = 0; i < reference_.size(); i++) {
14723        size += com.google.protobuf.CodedOutputStream
14724          .computeMessageSize(2, reference_.get(i));
14725      }
14726      size += unknownFields.getSerializedSize();
14727      memoizedSize = size;
14728      return size;
14729    }
14730
14731    private static final long serialVersionUID = 0L;
14732    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(
14733        com.google.protobuf.ByteString data)
14734        throws com.google.protobuf.InvalidProtocolBufferException {
14735      return PARSER.parseFrom(data);
14736    }
14737    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(
14738        com.google.protobuf.ByteString data,
14739        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14740        throws com.google.protobuf.InvalidProtocolBufferException {
14741      return PARSER.parseFrom(data, extensionRegistry);
14742    }
14743    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(byte[] data)
14744        throws com.google.protobuf.InvalidProtocolBufferException {
14745      return PARSER.parseFrom(data);
14746    }
14747    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(
14748        byte[] data,
14749        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14750        throws com.google.protobuf.InvalidProtocolBufferException {
14751      return PARSER.parseFrom(data, extensionRegistry);
14752    }
14753    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(java.io.InputStream input)
14754        throws java.io.IOException {
14755      return PARSER.parseFrom(input);
14756    }
14757    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(
14758        java.io.InputStream input,
14759        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14760        throws java.io.IOException {
14761      return PARSER.parseFrom(input, extensionRegistry);
14762    }
14763    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseDelimitedFrom(java.io.InputStream input)
14764        throws java.io.IOException {
14765      return PARSER.parseDelimitedFrom(input);
14766    }
14767    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseDelimitedFrom(
14768        java.io.InputStream input,
14769        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14770        throws java.io.IOException {
14771      return PARSER.parseDelimitedFrom(input, extensionRegistry);
14772    }
14773    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(
14774        com.google.protobuf.CodedInputStream input)
14775        throws java.io.IOException {
14776      return PARSER.parseFrom(input);
14777    }
14778    public static org.sonar.batch.protocol.output.BatchReport.Symbol parseFrom(
14779        com.google.protobuf.CodedInputStream input,
14780        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14781        throws java.io.IOException {
14782      return PARSER.parseFrom(input, extensionRegistry);
14783    }
14784
14785    public Builder newBuilderForType() { return newBuilder(); }
14786    public static Builder newBuilder() {
14787      return DEFAULT_INSTANCE.toBuilder();
14788    }
14789    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Symbol prototype) {
14790      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
14791    }
14792    public Builder toBuilder() {
14793      return this == DEFAULT_INSTANCE
14794          ? new Builder() : new Builder().mergeFrom(this);
14795    }
14796
14797    @java.lang.Override
14798    protected Builder newBuilderForType(
14799        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
14800      Builder builder = new Builder(parent);
14801      return builder;
14802    }
14803    /**
14804     * Protobuf type {@code Symbol}
14805     */
14806    public static final class Builder extends
14807        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
14808        // @@protoc_insertion_point(builder_implements:Symbol)
14809        org.sonar.batch.protocol.output.BatchReport.SymbolOrBuilder {
14810      public static final com.google.protobuf.Descriptors.Descriptor
14811          getDescriptor() {
14812        return org.sonar.batch.protocol.output.BatchReport.internal_static_Symbol_descriptor;
14813      }
14814
14815      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
14816          internalGetFieldAccessorTable() {
14817        return org.sonar.batch.protocol.output.BatchReport.internal_static_Symbol_fieldAccessorTable
14818            .ensureFieldAccessorsInitialized(
14819                org.sonar.batch.protocol.output.BatchReport.Symbol.class, org.sonar.batch.protocol.output.BatchReport.Symbol.Builder.class);
14820      }
14821
14822      // Construct using org.sonar.batch.protocol.output.BatchReport.Symbol.newBuilder()
14823      private Builder() {
14824        maybeForceBuilderInitialization();
14825      }
14826
14827      private Builder(
14828          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
14829        super(parent);
14830        maybeForceBuilderInitialization();
14831      }
14832      private void maybeForceBuilderInitialization() {
14833        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
14834          getDeclarationFieldBuilder();
14835          getReferenceFieldBuilder();
14836        }
14837      }
14838      public Builder clear() {
14839        super.clear();
14840        if (declarationBuilder_ == null) {
14841          declaration_ = null;
14842        } else {
14843          declarationBuilder_.clear();
14844        }
14845        bitField0_ = (bitField0_ & ~0x00000001);
14846        if (referenceBuilder_ == null) {
14847          reference_ = java.util.Collections.emptyList();
14848          bitField0_ = (bitField0_ & ~0x00000002);
14849        } else {
14850          referenceBuilder_.clear();
14851        }
14852        return this;
14853      }
14854
14855      public com.google.protobuf.Descriptors.Descriptor
14856          getDescriptorForType() {
14857        return org.sonar.batch.protocol.output.BatchReport.internal_static_Symbol_descriptor;
14858      }
14859
14860      public org.sonar.batch.protocol.output.BatchReport.Symbol getDefaultInstanceForType() {
14861        return org.sonar.batch.protocol.output.BatchReport.Symbol.getDefaultInstance();
14862      }
14863
14864      public org.sonar.batch.protocol.output.BatchReport.Symbol build() {
14865        org.sonar.batch.protocol.output.BatchReport.Symbol result = buildPartial();
14866        if (!result.isInitialized()) {
14867          throw newUninitializedMessageException(result);
14868        }
14869        return result;
14870      }
14871
14872      public org.sonar.batch.protocol.output.BatchReport.Symbol buildPartial() {
14873        org.sonar.batch.protocol.output.BatchReport.Symbol result = new org.sonar.batch.protocol.output.BatchReport.Symbol(this);
14874        int from_bitField0_ = bitField0_;
14875        int to_bitField0_ = 0;
14876        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
14877          to_bitField0_ |= 0x00000001;
14878        }
14879        if (declarationBuilder_ == null) {
14880          result.declaration_ = declaration_;
14881        } else {
14882          result.declaration_ = declarationBuilder_.build();
14883        }
14884        if (referenceBuilder_ == null) {
14885          if (((bitField0_ & 0x00000002) == 0x00000002)) {
14886            reference_ = java.util.Collections.unmodifiableList(reference_);
14887            bitField0_ = (bitField0_ & ~0x00000002);
14888          }
14889          result.reference_ = reference_;
14890        } else {
14891          result.reference_ = referenceBuilder_.build();
14892        }
14893        result.bitField0_ = to_bitField0_;
14894        onBuilt();
14895        return result;
14896      }
14897
14898      public Builder mergeFrom(com.google.protobuf.Message other) {
14899        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Symbol) {
14900          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Symbol)other);
14901        } else {
14902          super.mergeFrom(other);
14903          return this;
14904        }
14905      }
14906
14907      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Symbol other) {
14908        if (other == org.sonar.batch.protocol.output.BatchReport.Symbol.getDefaultInstance()) return this;
14909        if (other.hasDeclaration()) {
14910          mergeDeclaration(other.getDeclaration());
14911        }
14912        if (referenceBuilder_ == null) {
14913          if (!other.reference_.isEmpty()) {
14914            if (reference_.isEmpty()) {
14915              reference_ = other.reference_;
14916              bitField0_ = (bitField0_ & ~0x00000002);
14917            } else {
14918              ensureReferenceIsMutable();
14919              reference_.addAll(other.reference_);
14920            }
14921            onChanged();
14922          }
14923        } else {
14924          if (!other.reference_.isEmpty()) {
14925            if (referenceBuilder_.isEmpty()) {
14926              referenceBuilder_.dispose();
14927              referenceBuilder_ = null;
14928              reference_ = other.reference_;
14929              bitField0_ = (bitField0_ & ~0x00000002);
14930              referenceBuilder_ = 
14931                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
14932                   getReferenceFieldBuilder() : null;
14933            } else {
14934              referenceBuilder_.addAllMessages(other.reference_);
14935            }
14936          }
14937        }
14938        this.mergeUnknownFields(other.unknownFields);
14939        onChanged();
14940        return this;
14941      }
14942
14943      public final boolean isInitialized() {
14944        return true;
14945      }
14946
14947      public Builder mergeFrom(
14948          com.google.protobuf.CodedInputStream input,
14949          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
14950          throws java.io.IOException {
14951        org.sonar.batch.protocol.output.BatchReport.Symbol parsedMessage = null;
14952        try {
14953          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
14954        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
14955          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Symbol) e.getUnfinishedMessage();
14956          throw e;
14957        } finally {
14958          if (parsedMessage != null) {
14959            mergeFrom(parsedMessage);
14960          }
14961        }
14962        return this;
14963      }
14964      private int bitField0_;
14965
14966      private org.sonar.batch.protocol.output.BatchReport.TextRange declaration_ = null;
14967      private com.google.protobuf.SingleFieldBuilder<
14968          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> declarationBuilder_;
14969      /**
14970       * <code>optional .TextRange declaration = 1;</code>
14971       */
14972      public boolean hasDeclaration() {
14973        return ((bitField0_ & 0x00000001) == 0x00000001);
14974      }
14975      /**
14976       * <code>optional .TextRange declaration = 1;</code>
14977       */
14978      public org.sonar.batch.protocol.output.BatchReport.TextRange getDeclaration() {
14979        if (declarationBuilder_ == null) {
14980          return declaration_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : declaration_;
14981        } else {
14982          return declarationBuilder_.getMessage();
14983        }
14984      }
14985      /**
14986       * <code>optional .TextRange declaration = 1;</code>
14987       */
14988      public Builder setDeclaration(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
14989        if (declarationBuilder_ == null) {
14990          if (value == null) {
14991            throw new NullPointerException();
14992          }
14993          declaration_ = value;
14994          onChanged();
14995        } else {
14996          declarationBuilder_.setMessage(value);
14997        }
14998        bitField0_ |= 0x00000001;
14999        return this;
15000      }
15001      /**
15002       * <code>optional .TextRange declaration = 1;</code>
15003       */
15004      public Builder setDeclaration(
15005          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
15006        if (declarationBuilder_ == null) {
15007          declaration_ = builderForValue.build();
15008          onChanged();
15009        } else {
15010          declarationBuilder_.setMessage(builderForValue.build());
15011        }
15012        bitField0_ |= 0x00000001;
15013        return this;
15014      }
15015      /**
15016       * <code>optional .TextRange declaration = 1;</code>
15017       */
15018      public Builder mergeDeclaration(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
15019        if (declarationBuilder_ == null) {
15020          if (((bitField0_ & 0x00000001) == 0x00000001) &&
15021              declaration_ != null &&
15022              declaration_ != org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) {
15023            declaration_ =
15024              org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder(declaration_).mergeFrom(value).buildPartial();
15025          } else {
15026            declaration_ = value;
15027          }
15028          onChanged();
15029        } else {
15030          declarationBuilder_.mergeFrom(value);
15031        }
15032        bitField0_ |= 0x00000001;
15033        return this;
15034      }
15035      /**
15036       * <code>optional .TextRange declaration = 1;</code>
15037       */
15038      public Builder clearDeclaration() {
15039        if (declarationBuilder_ == null) {
15040          declaration_ = null;
15041          onChanged();
15042        } else {
15043          declarationBuilder_.clear();
15044        }
15045        bitField0_ = (bitField0_ & ~0x00000001);
15046        return this;
15047      }
15048      /**
15049       * <code>optional .TextRange declaration = 1;</code>
15050       */
15051      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getDeclarationBuilder() {
15052        bitField0_ |= 0x00000001;
15053        onChanged();
15054        return getDeclarationFieldBuilder().getBuilder();
15055      }
15056      /**
15057       * <code>optional .TextRange declaration = 1;</code>
15058       */
15059      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getDeclarationOrBuilder() {
15060        if (declarationBuilder_ != null) {
15061          return declarationBuilder_.getMessageOrBuilder();
15062        } else {
15063          return declaration_ == null ?
15064              org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : declaration_;
15065        }
15066      }
15067      /**
15068       * <code>optional .TextRange declaration = 1;</code>
15069       */
15070      private com.google.protobuf.SingleFieldBuilder<
15071          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
15072          getDeclarationFieldBuilder() {
15073        if (declarationBuilder_ == null) {
15074          declarationBuilder_ = new com.google.protobuf.SingleFieldBuilder<
15075              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
15076                  getDeclaration(),
15077                  getParentForChildren(),
15078                  isClean());
15079          declaration_ = null;
15080        }
15081        return declarationBuilder_;
15082      }
15083
15084      private java.util.List<org.sonar.batch.protocol.output.BatchReport.TextRange> reference_ =
15085        java.util.Collections.emptyList();
15086      private void ensureReferenceIsMutable() {
15087        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
15088          reference_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.TextRange>(reference_);
15089          bitField0_ |= 0x00000002;
15090         }
15091      }
15092
15093      private com.google.protobuf.RepeatedFieldBuilder<
15094          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> referenceBuilder_;
15095
15096      /**
15097       * <code>repeated .TextRange reference = 2;</code>
15098       */
15099      public java.util.List<org.sonar.batch.protocol.output.BatchReport.TextRange> getReferenceList() {
15100        if (referenceBuilder_ == null) {
15101          return java.util.Collections.unmodifiableList(reference_);
15102        } else {
15103          return referenceBuilder_.getMessageList();
15104        }
15105      }
15106      /**
15107       * <code>repeated .TextRange reference = 2;</code>
15108       */
15109      public int getReferenceCount() {
15110        if (referenceBuilder_ == null) {
15111          return reference_.size();
15112        } else {
15113          return referenceBuilder_.getCount();
15114        }
15115      }
15116      /**
15117       * <code>repeated .TextRange reference = 2;</code>
15118       */
15119      public org.sonar.batch.protocol.output.BatchReport.TextRange getReference(int index) {
15120        if (referenceBuilder_ == null) {
15121          return reference_.get(index);
15122        } else {
15123          return referenceBuilder_.getMessage(index);
15124        }
15125      }
15126      /**
15127       * <code>repeated .TextRange reference = 2;</code>
15128       */
15129      public Builder setReference(
15130          int index, org.sonar.batch.protocol.output.BatchReport.TextRange value) {
15131        if (referenceBuilder_ == null) {
15132          if (value == null) {
15133            throw new NullPointerException();
15134          }
15135          ensureReferenceIsMutable();
15136          reference_.set(index, value);
15137          onChanged();
15138        } else {
15139          referenceBuilder_.setMessage(index, value);
15140        }
15141        return this;
15142      }
15143      /**
15144       * <code>repeated .TextRange reference = 2;</code>
15145       */
15146      public Builder setReference(
15147          int index, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
15148        if (referenceBuilder_ == null) {
15149          ensureReferenceIsMutable();
15150          reference_.set(index, builderForValue.build());
15151          onChanged();
15152        } else {
15153          referenceBuilder_.setMessage(index, builderForValue.build());
15154        }
15155        return this;
15156      }
15157      /**
15158       * <code>repeated .TextRange reference = 2;</code>
15159       */
15160      public Builder addReference(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
15161        if (referenceBuilder_ == null) {
15162          if (value == null) {
15163            throw new NullPointerException();
15164          }
15165          ensureReferenceIsMutable();
15166          reference_.add(value);
15167          onChanged();
15168        } else {
15169          referenceBuilder_.addMessage(value);
15170        }
15171        return this;
15172      }
15173      /**
15174       * <code>repeated .TextRange reference = 2;</code>
15175       */
15176      public Builder addReference(
15177          int index, org.sonar.batch.protocol.output.BatchReport.TextRange value) {
15178        if (referenceBuilder_ == null) {
15179          if (value == null) {
15180            throw new NullPointerException();
15181          }
15182          ensureReferenceIsMutable();
15183          reference_.add(index, value);
15184          onChanged();
15185        } else {
15186          referenceBuilder_.addMessage(index, value);
15187        }
15188        return this;
15189      }
15190      /**
15191       * <code>repeated .TextRange reference = 2;</code>
15192       */
15193      public Builder addReference(
15194          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
15195        if (referenceBuilder_ == null) {
15196          ensureReferenceIsMutable();
15197          reference_.add(builderForValue.build());
15198          onChanged();
15199        } else {
15200          referenceBuilder_.addMessage(builderForValue.build());
15201        }
15202        return this;
15203      }
15204      /**
15205       * <code>repeated .TextRange reference = 2;</code>
15206       */
15207      public Builder addReference(
15208          int index, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
15209        if (referenceBuilder_ == null) {
15210          ensureReferenceIsMutable();
15211          reference_.add(index, builderForValue.build());
15212          onChanged();
15213        } else {
15214          referenceBuilder_.addMessage(index, builderForValue.build());
15215        }
15216        return this;
15217      }
15218      /**
15219       * <code>repeated .TextRange reference = 2;</code>
15220       */
15221      public Builder addAllReference(
15222          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.TextRange> values) {
15223        if (referenceBuilder_ == null) {
15224          ensureReferenceIsMutable();
15225          com.google.protobuf.AbstractMessageLite.Builder.addAll(
15226              values, reference_);
15227          onChanged();
15228        } else {
15229          referenceBuilder_.addAllMessages(values);
15230        }
15231        return this;
15232      }
15233      /**
15234       * <code>repeated .TextRange reference = 2;</code>
15235       */
15236      public Builder clearReference() {
15237        if (referenceBuilder_ == null) {
15238          reference_ = java.util.Collections.emptyList();
15239          bitField0_ = (bitField0_ & ~0x00000002);
15240          onChanged();
15241        } else {
15242          referenceBuilder_.clear();
15243        }
15244        return this;
15245      }
15246      /**
15247       * <code>repeated .TextRange reference = 2;</code>
15248       */
15249      public Builder removeReference(int index) {
15250        if (referenceBuilder_ == null) {
15251          ensureReferenceIsMutable();
15252          reference_.remove(index);
15253          onChanged();
15254        } else {
15255          referenceBuilder_.remove(index);
15256        }
15257        return this;
15258      }
15259      /**
15260       * <code>repeated .TextRange reference = 2;</code>
15261       */
15262      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getReferenceBuilder(
15263          int index) {
15264        return getReferenceFieldBuilder().getBuilder(index);
15265      }
15266      /**
15267       * <code>repeated .TextRange reference = 2;</code>
15268       */
15269      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getReferenceOrBuilder(
15270          int index) {
15271        if (referenceBuilder_ == null) {
15272          return reference_.get(index);  } else {
15273          return referenceBuilder_.getMessageOrBuilder(index);
15274        }
15275      }
15276      /**
15277       * <code>repeated .TextRange reference = 2;</code>
15278       */
15279      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
15280           getReferenceOrBuilderList() {
15281        if (referenceBuilder_ != null) {
15282          return referenceBuilder_.getMessageOrBuilderList();
15283        } else {
15284          return java.util.Collections.unmodifiableList(reference_);
15285        }
15286      }
15287      /**
15288       * <code>repeated .TextRange reference = 2;</code>
15289       */
15290      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder addReferenceBuilder() {
15291        return getReferenceFieldBuilder().addBuilder(
15292            org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance());
15293      }
15294      /**
15295       * <code>repeated .TextRange reference = 2;</code>
15296       */
15297      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder addReferenceBuilder(
15298          int index) {
15299        return getReferenceFieldBuilder().addBuilder(
15300            index, org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance());
15301      }
15302      /**
15303       * <code>repeated .TextRange reference = 2;</code>
15304       */
15305      public java.util.List<org.sonar.batch.protocol.output.BatchReport.TextRange.Builder> 
15306           getReferenceBuilderList() {
15307        return getReferenceFieldBuilder().getBuilderList();
15308      }
15309      private com.google.protobuf.RepeatedFieldBuilder<
15310          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
15311          getReferenceFieldBuilder() {
15312        if (referenceBuilder_ == null) {
15313          referenceBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
15314              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
15315                  reference_,
15316                  ((bitField0_ & 0x00000002) == 0x00000002),
15317                  getParentForChildren(),
15318                  isClean());
15319          reference_ = null;
15320        }
15321        return referenceBuilder_;
15322      }
15323
15324      // @@protoc_insertion_point(builder_scope:Symbol)
15325    }
15326
15327    // @@protoc_insertion_point(class_scope:Symbol)
15328    private static final org.sonar.batch.protocol.output.BatchReport.Symbol DEFAULT_INSTANCE;
15329    static {
15330      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Symbol();
15331    }
15332
15333    public static org.sonar.batch.protocol.output.BatchReport.Symbol getDefaultInstance() {
15334      return DEFAULT_INSTANCE;
15335    }
15336
15337    @java.lang.Deprecated public static final com.google.protobuf.Parser<Symbol>
15338        PARSER = new com.google.protobuf.AbstractParser<Symbol>() {
15339      public Symbol parsePartialFrom(
15340          com.google.protobuf.CodedInputStream input,
15341          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15342          throws com.google.protobuf.InvalidProtocolBufferException {
15343        try {
15344          return new Symbol(input, extensionRegistry);
15345        } catch (RuntimeException e) {
15346          if (e.getCause() instanceof
15347              com.google.protobuf.InvalidProtocolBufferException) {
15348            throw (com.google.protobuf.InvalidProtocolBufferException)
15349                e.getCause();
15350          }
15351          throw e;
15352        }
15353      }
15354    };
15355
15356    public static com.google.protobuf.Parser<Symbol> parser() {
15357      return PARSER;
15358    }
15359
15360    @java.lang.Override
15361    public com.google.protobuf.Parser<Symbol> getParserForType() {
15362      return PARSER;
15363    }
15364
15365    public org.sonar.batch.protocol.output.BatchReport.Symbol getDefaultInstanceForType() {
15366      return DEFAULT_INSTANCE;
15367    }
15368
15369  }
15370
15371  public interface CoverageOrBuilder extends
15372      // @@protoc_insertion_point(interface_extends:Coverage)
15373      com.google.protobuf.MessageOrBuilder {
15374
15375    /**
15376     * <code>optional int32 line = 1;</code>
15377     */
15378    boolean hasLine();
15379    /**
15380     * <code>optional int32 line = 1;</code>
15381     */
15382    int getLine();
15383
15384    /**
15385     * <code>optional int32 conditions = 2;</code>
15386     *
15387     * <pre>
15388     * Number of conditions to cover (if set, the value must be greater than 0)
15389     * </pre>
15390     */
15391    boolean hasConditions();
15392    /**
15393     * <code>optional int32 conditions = 2;</code>
15394     *
15395     * <pre>
15396     * Number of conditions to cover (if set, the value must be greater than 0)
15397     * </pre>
15398     */
15399    int getConditions();
15400
15401    /**
15402     * <code>optional bool ut_hits = 3;</code>
15403     *
15404     * <pre>
15405     * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
15406     * </pre>
15407     */
15408    boolean hasUtHits();
15409    /**
15410     * <code>optional bool ut_hits = 3;</code>
15411     *
15412     * <pre>
15413     * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
15414     * </pre>
15415     */
15416    boolean getUtHits();
15417
15418    /**
15419     * <code>optional bool it_hits = 4;</code>
15420     *
15421     * <pre>
15422     * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
15423     * </pre>
15424     */
15425    boolean hasItHits();
15426    /**
15427     * <code>optional bool it_hits = 4;</code>
15428     *
15429     * <pre>
15430     * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
15431     * </pre>
15432     */
15433    boolean getItHits();
15434
15435    /**
15436     * <code>optional int32 ut_covered_conditions = 5;</code>
15437     *
15438     * <pre>
15439     * Number of conditions covered by unit tests
15440     * </pre>
15441     */
15442    boolean hasUtCoveredConditions();
15443    /**
15444     * <code>optional int32 ut_covered_conditions = 5;</code>
15445     *
15446     * <pre>
15447     * Number of conditions covered by unit tests
15448     * </pre>
15449     */
15450    int getUtCoveredConditions();
15451
15452    /**
15453     * <code>optional int32 it_covered_conditions = 6;</code>
15454     *
15455     * <pre>
15456     * Number of conditions covered by integration tests
15457     * </pre>
15458     */
15459    boolean hasItCoveredConditions();
15460    /**
15461     * <code>optional int32 it_covered_conditions = 6;</code>
15462     *
15463     * <pre>
15464     * Number of conditions covered by integration tests
15465     * </pre>
15466     */
15467    int getItCoveredConditions();
15468
15469    /**
15470     * <code>optional int32 overall_covered_conditions = 7;</code>
15471     *
15472     * <pre>
15473     * Number of conditions covered by overall tests
15474     * </pre>
15475     */
15476    boolean hasOverallCoveredConditions();
15477    /**
15478     * <code>optional int32 overall_covered_conditions = 7;</code>
15479     *
15480     * <pre>
15481     * Number of conditions covered by overall tests
15482     * </pre>
15483     */
15484    int getOverallCoveredConditions();
15485  }
15486  /**
15487   * Protobuf type {@code Coverage}
15488   *
15489   * <pre>
15490   * Only FILE component has coverage information, and only executable lines should contains this information.
15491   * TODO rename it LineCoverage ?
15492   * </pre>
15493   */
15494  public  static final class Coverage extends
15495      com.google.protobuf.GeneratedMessage implements
15496      // @@protoc_insertion_point(message_implements:Coverage)
15497      CoverageOrBuilder {
15498    // Use Coverage.newBuilder() to construct.
15499    private Coverage(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
15500      super(builder);
15501    }
15502    private Coverage() {
15503      line_ = 0;
15504      conditions_ = 0;
15505      utHits_ = false;
15506      itHits_ = false;
15507      utCoveredConditions_ = 0;
15508      itCoveredConditions_ = 0;
15509      overallCoveredConditions_ = 0;
15510    }
15511
15512    @java.lang.Override
15513    public final com.google.protobuf.UnknownFieldSet
15514    getUnknownFields() {
15515      return this.unknownFields;
15516    }
15517    private Coverage(
15518        com.google.protobuf.CodedInputStream input,
15519        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
15520      this();
15521      int mutable_bitField0_ = 0;
15522      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
15523          com.google.protobuf.UnknownFieldSet.newBuilder();
15524      try {
15525        boolean done = false;
15526        while (!done) {
15527          int tag = input.readTag();
15528          switch (tag) {
15529            case 0:
15530              done = true;
15531              break;
15532            default: {
15533              if (!parseUnknownField(input, unknownFields,
15534                                     extensionRegistry, tag)) {
15535                done = true;
15536              }
15537              break;
15538            }
15539            case 8: {
15540              bitField0_ |= 0x00000001;
15541              line_ = input.readInt32();
15542              break;
15543            }
15544            case 16: {
15545              bitField0_ |= 0x00000002;
15546              conditions_ = input.readInt32();
15547              break;
15548            }
15549            case 24: {
15550              bitField0_ |= 0x00000004;
15551              utHits_ = input.readBool();
15552              break;
15553            }
15554            case 32: {
15555              bitField0_ |= 0x00000008;
15556              itHits_ = input.readBool();
15557              break;
15558            }
15559            case 40: {
15560              bitField0_ |= 0x00000010;
15561              utCoveredConditions_ = input.readInt32();
15562              break;
15563            }
15564            case 48: {
15565              bitField0_ |= 0x00000020;
15566              itCoveredConditions_ = input.readInt32();
15567              break;
15568            }
15569            case 56: {
15570              bitField0_ |= 0x00000040;
15571              overallCoveredConditions_ = input.readInt32();
15572              break;
15573            }
15574          }
15575        }
15576      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
15577        throw new RuntimeException(e.setUnfinishedMessage(this));
15578      } catch (java.io.IOException e) {
15579        throw new RuntimeException(
15580            new com.google.protobuf.InvalidProtocolBufferException(
15581                e.getMessage()).setUnfinishedMessage(this));
15582      } finally {
15583        this.unknownFields = unknownFields.build();
15584        makeExtensionsImmutable();
15585      }
15586    }
15587    public static final com.google.protobuf.Descriptors.Descriptor
15588        getDescriptor() {
15589      return org.sonar.batch.protocol.output.BatchReport.internal_static_Coverage_descriptor;
15590    }
15591
15592    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
15593        internalGetFieldAccessorTable() {
15594      return org.sonar.batch.protocol.output.BatchReport.internal_static_Coverage_fieldAccessorTable
15595          .ensureFieldAccessorsInitialized(
15596              org.sonar.batch.protocol.output.BatchReport.Coverage.class, org.sonar.batch.protocol.output.BatchReport.Coverage.Builder.class);
15597    }
15598
15599    private int bitField0_;
15600    public static final int LINE_FIELD_NUMBER = 1;
15601    private int line_;
15602    /**
15603     * <code>optional int32 line = 1;</code>
15604     */
15605    public boolean hasLine() {
15606      return ((bitField0_ & 0x00000001) == 0x00000001);
15607    }
15608    /**
15609     * <code>optional int32 line = 1;</code>
15610     */
15611    public int getLine() {
15612      return line_;
15613    }
15614
15615    public static final int CONDITIONS_FIELD_NUMBER = 2;
15616    private int conditions_;
15617    /**
15618     * <code>optional int32 conditions = 2;</code>
15619     *
15620     * <pre>
15621     * Number of conditions to cover (if set, the value must be greater than 0)
15622     * </pre>
15623     */
15624    public boolean hasConditions() {
15625      return ((bitField0_ & 0x00000002) == 0x00000002);
15626    }
15627    /**
15628     * <code>optional int32 conditions = 2;</code>
15629     *
15630     * <pre>
15631     * Number of conditions to cover (if set, the value must be greater than 0)
15632     * </pre>
15633     */
15634    public int getConditions() {
15635      return conditions_;
15636    }
15637
15638    public static final int UT_HITS_FIELD_NUMBER = 3;
15639    private boolean utHits_;
15640    /**
15641     * <code>optional bool ut_hits = 3;</code>
15642     *
15643     * <pre>
15644     * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
15645     * </pre>
15646     */
15647    public boolean hasUtHits() {
15648      return ((bitField0_ & 0x00000004) == 0x00000004);
15649    }
15650    /**
15651     * <code>optional bool ut_hits = 3;</code>
15652     *
15653     * <pre>
15654     * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
15655     * </pre>
15656     */
15657    public boolean getUtHits() {
15658      return utHits_;
15659    }
15660
15661    public static final int IT_HITS_FIELD_NUMBER = 4;
15662    private boolean itHits_;
15663    /**
15664     * <code>optional bool it_hits = 4;</code>
15665     *
15666     * <pre>
15667     * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
15668     * </pre>
15669     */
15670    public boolean hasItHits() {
15671      return ((bitField0_ & 0x00000008) == 0x00000008);
15672    }
15673    /**
15674     * <code>optional bool it_hits = 4;</code>
15675     *
15676     * <pre>
15677     * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
15678     * </pre>
15679     */
15680    public boolean getItHits() {
15681      return itHits_;
15682    }
15683
15684    public static final int UT_COVERED_CONDITIONS_FIELD_NUMBER = 5;
15685    private int utCoveredConditions_;
15686    /**
15687     * <code>optional int32 ut_covered_conditions = 5;</code>
15688     *
15689     * <pre>
15690     * Number of conditions covered by unit tests
15691     * </pre>
15692     */
15693    public boolean hasUtCoveredConditions() {
15694      return ((bitField0_ & 0x00000010) == 0x00000010);
15695    }
15696    /**
15697     * <code>optional int32 ut_covered_conditions = 5;</code>
15698     *
15699     * <pre>
15700     * Number of conditions covered by unit tests
15701     * </pre>
15702     */
15703    public int getUtCoveredConditions() {
15704      return utCoveredConditions_;
15705    }
15706
15707    public static final int IT_COVERED_CONDITIONS_FIELD_NUMBER = 6;
15708    private int itCoveredConditions_;
15709    /**
15710     * <code>optional int32 it_covered_conditions = 6;</code>
15711     *
15712     * <pre>
15713     * Number of conditions covered by integration tests
15714     * </pre>
15715     */
15716    public boolean hasItCoveredConditions() {
15717      return ((bitField0_ & 0x00000020) == 0x00000020);
15718    }
15719    /**
15720     * <code>optional int32 it_covered_conditions = 6;</code>
15721     *
15722     * <pre>
15723     * Number of conditions covered by integration tests
15724     * </pre>
15725     */
15726    public int getItCoveredConditions() {
15727      return itCoveredConditions_;
15728    }
15729
15730    public static final int OVERALL_COVERED_CONDITIONS_FIELD_NUMBER = 7;
15731    private int overallCoveredConditions_;
15732    /**
15733     * <code>optional int32 overall_covered_conditions = 7;</code>
15734     *
15735     * <pre>
15736     * Number of conditions covered by overall tests
15737     * </pre>
15738     */
15739    public boolean hasOverallCoveredConditions() {
15740      return ((bitField0_ & 0x00000040) == 0x00000040);
15741    }
15742    /**
15743     * <code>optional int32 overall_covered_conditions = 7;</code>
15744     *
15745     * <pre>
15746     * Number of conditions covered by overall tests
15747     * </pre>
15748     */
15749    public int getOverallCoveredConditions() {
15750      return overallCoveredConditions_;
15751    }
15752
15753    private byte memoizedIsInitialized = -1;
15754    public final boolean isInitialized() {
15755      byte isInitialized = memoizedIsInitialized;
15756      if (isInitialized == 1) return true;
15757      if (isInitialized == 0) return false;
15758
15759      memoizedIsInitialized = 1;
15760      return true;
15761    }
15762
15763    public void writeTo(com.google.protobuf.CodedOutputStream output)
15764                        throws java.io.IOException {
15765      if (((bitField0_ & 0x00000001) == 0x00000001)) {
15766        output.writeInt32(1, line_);
15767      }
15768      if (((bitField0_ & 0x00000002) == 0x00000002)) {
15769        output.writeInt32(2, conditions_);
15770      }
15771      if (((bitField0_ & 0x00000004) == 0x00000004)) {
15772        output.writeBool(3, utHits_);
15773      }
15774      if (((bitField0_ & 0x00000008) == 0x00000008)) {
15775        output.writeBool(4, itHits_);
15776      }
15777      if (((bitField0_ & 0x00000010) == 0x00000010)) {
15778        output.writeInt32(5, utCoveredConditions_);
15779      }
15780      if (((bitField0_ & 0x00000020) == 0x00000020)) {
15781        output.writeInt32(6, itCoveredConditions_);
15782      }
15783      if (((bitField0_ & 0x00000040) == 0x00000040)) {
15784        output.writeInt32(7, overallCoveredConditions_);
15785      }
15786      unknownFields.writeTo(output);
15787    }
15788
15789    public int getSerializedSize() {
15790      int size = memoizedSize;
15791      if (size != -1) return size;
15792
15793      size = 0;
15794      if (((bitField0_ & 0x00000001) == 0x00000001)) {
15795        size += com.google.protobuf.CodedOutputStream
15796          .computeInt32Size(1, line_);
15797      }
15798      if (((bitField0_ & 0x00000002) == 0x00000002)) {
15799        size += com.google.protobuf.CodedOutputStream
15800          .computeInt32Size(2, conditions_);
15801      }
15802      if (((bitField0_ & 0x00000004) == 0x00000004)) {
15803        size += com.google.protobuf.CodedOutputStream
15804          .computeBoolSize(3, utHits_);
15805      }
15806      if (((bitField0_ & 0x00000008) == 0x00000008)) {
15807        size += com.google.protobuf.CodedOutputStream
15808          .computeBoolSize(4, itHits_);
15809      }
15810      if (((bitField0_ & 0x00000010) == 0x00000010)) {
15811        size += com.google.protobuf.CodedOutputStream
15812          .computeInt32Size(5, utCoveredConditions_);
15813      }
15814      if (((bitField0_ & 0x00000020) == 0x00000020)) {
15815        size += com.google.protobuf.CodedOutputStream
15816          .computeInt32Size(6, itCoveredConditions_);
15817      }
15818      if (((bitField0_ & 0x00000040) == 0x00000040)) {
15819        size += com.google.protobuf.CodedOutputStream
15820          .computeInt32Size(7, overallCoveredConditions_);
15821      }
15822      size += unknownFields.getSerializedSize();
15823      memoizedSize = size;
15824      return size;
15825    }
15826
15827    private static final long serialVersionUID = 0L;
15828    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(
15829        com.google.protobuf.ByteString data)
15830        throws com.google.protobuf.InvalidProtocolBufferException {
15831      return PARSER.parseFrom(data);
15832    }
15833    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(
15834        com.google.protobuf.ByteString data,
15835        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15836        throws com.google.protobuf.InvalidProtocolBufferException {
15837      return PARSER.parseFrom(data, extensionRegistry);
15838    }
15839    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(byte[] data)
15840        throws com.google.protobuf.InvalidProtocolBufferException {
15841      return PARSER.parseFrom(data);
15842    }
15843    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(
15844        byte[] data,
15845        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15846        throws com.google.protobuf.InvalidProtocolBufferException {
15847      return PARSER.parseFrom(data, extensionRegistry);
15848    }
15849    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(java.io.InputStream input)
15850        throws java.io.IOException {
15851      return PARSER.parseFrom(input);
15852    }
15853    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(
15854        java.io.InputStream input,
15855        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15856        throws java.io.IOException {
15857      return PARSER.parseFrom(input, extensionRegistry);
15858    }
15859    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseDelimitedFrom(java.io.InputStream input)
15860        throws java.io.IOException {
15861      return PARSER.parseDelimitedFrom(input);
15862    }
15863    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseDelimitedFrom(
15864        java.io.InputStream input,
15865        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15866        throws java.io.IOException {
15867      return PARSER.parseDelimitedFrom(input, extensionRegistry);
15868    }
15869    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(
15870        com.google.protobuf.CodedInputStream input)
15871        throws java.io.IOException {
15872      return PARSER.parseFrom(input);
15873    }
15874    public static org.sonar.batch.protocol.output.BatchReport.Coverage parseFrom(
15875        com.google.protobuf.CodedInputStream input,
15876        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
15877        throws java.io.IOException {
15878      return PARSER.parseFrom(input, extensionRegistry);
15879    }
15880
15881    public Builder newBuilderForType() { return newBuilder(); }
15882    public static Builder newBuilder() {
15883      return DEFAULT_INSTANCE.toBuilder();
15884    }
15885    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Coverage prototype) {
15886      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
15887    }
15888    public Builder toBuilder() {
15889      return this == DEFAULT_INSTANCE
15890          ? new Builder() : new Builder().mergeFrom(this);
15891    }
15892
15893    @java.lang.Override
15894    protected Builder newBuilderForType(
15895        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
15896      Builder builder = new Builder(parent);
15897      return builder;
15898    }
15899    /**
15900     * Protobuf type {@code Coverage}
15901     *
15902     * <pre>
15903     * Only FILE component has coverage information, and only executable lines should contains this information.
15904     * TODO rename it LineCoverage ?
15905     * </pre>
15906     */
15907    public static final class Builder extends
15908        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
15909        // @@protoc_insertion_point(builder_implements:Coverage)
15910        org.sonar.batch.protocol.output.BatchReport.CoverageOrBuilder {
15911      public static final com.google.protobuf.Descriptors.Descriptor
15912          getDescriptor() {
15913        return org.sonar.batch.protocol.output.BatchReport.internal_static_Coverage_descriptor;
15914      }
15915
15916      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
15917          internalGetFieldAccessorTable() {
15918        return org.sonar.batch.protocol.output.BatchReport.internal_static_Coverage_fieldAccessorTable
15919            .ensureFieldAccessorsInitialized(
15920                org.sonar.batch.protocol.output.BatchReport.Coverage.class, org.sonar.batch.protocol.output.BatchReport.Coverage.Builder.class);
15921      }
15922
15923      // Construct using org.sonar.batch.protocol.output.BatchReport.Coverage.newBuilder()
15924      private Builder() {
15925        maybeForceBuilderInitialization();
15926      }
15927
15928      private Builder(
15929          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
15930        super(parent);
15931        maybeForceBuilderInitialization();
15932      }
15933      private void maybeForceBuilderInitialization() {
15934        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
15935        }
15936      }
15937      public Builder clear() {
15938        super.clear();
15939        line_ = 0;
15940        bitField0_ = (bitField0_ & ~0x00000001);
15941        conditions_ = 0;
15942        bitField0_ = (bitField0_ & ~0x00000002);
15943        utHits_ = false;
15944        bitField0_ = (bitField0_ & ~0x00000004);
15945        itHits_ = false;
15946        bitField0_ = (bitField0_ & ~0x00000008);
15947        utCoveredConditions_ = 0;
15948        bitField0_ = (bitField0_ & ~0x00000010);
15949        itCoveredConditions_ = 0;
15950        bitField0_ = (bitField0_ & ~0x00000020);
15951        overallCoveredConditions_ = 0;
15952        bitField0_ = (bitField0_ & ~0x00000040);
15953        return this;
15954      }
15955
15956      public com.google.protobuf.Descriptors.Descriptor
15957          getDescriptorForType() {
15958        return org.sonar.batch.protocol.output.BatchReport.internal_static_Coverage_descriptor;
15959      }
15960
15961      public org.sonar.batch.protocol.output.BatchReport.Coverage getDefaultInstanceForType() {
15962        return org.sonar.batch.protocol.output.BatchReport.Coverage.getDefaultInstance();
15963      }
15964
15965      public org.sonar.batch.protocol.output.BatchReport.Coverage build() {
15966        org.sonar.batch.protocol.output.BatchReport.Coverage result = buildPartial();
15967        if (!result.isInitialized()) {
15968          throw newUninitializedMessageException(result);
15969        }
15970        return result;
15971      }
15972
15973      public org.sonar.batch.protocol.output.BatchReport.Coverage buildPartial() {
15974        org.sonar.batch.protocol.output.BatchReport.Coverage result = new org.sonar.batch.protocol.output.BatchReport.Coverage(this);
15975        int from_bitField0_ = bitField0_;
15976        int to_bitField0_ = 0;
15977        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
15978          to_bitField0_ |= 0x00000001;
15979        }
15980        result.line_ = line_;
15981        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
15982          to_bitField0_ |= 0x00000002;
15983        }
15984        result.conditions_ = conditions_;
15985        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
15986          to_bitField0_ |= 0x00000004;
15987        }
15988        result.utHits_ = utHits_;
15989        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
15990          to_bitField0_ |= 0x00000008;
15991        }
15992        result.itHits_ = itHits_;
15993        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
15994          to_bitField0_ |= 0x00000010;
15995        }
15996        result.utCoveredConditions_ = utCoveredConditions_;
15997        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
15998          to_bitField0_ |= 0x00000020;
15999        }
16000        result.itCoveredConditions_ = itCoveredConditions_;
16001        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
16002          to_bitField0_ |= 0x00000040;
16003        }
16004        result.overallCoveredConditions_ = overallCoveredConditions_;
16005        result.bitField0_ = to_bitField0_;
16006        onBuilt();
16007        return result;
16008      }
16009
16010      public Builder mergeFrom(com.google.protobuf.Message other) {
16011        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Coverage) {
16012          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Coverage)other);
16013        } else {
16014          super.mergeFrom(other);
16015          return this;
16016        }
16017      }
16018
16019      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Coverage other) {
16020        if (other == org.sonar.batch.protocol.output.BatchReport.Coverage.getDefaultInstance()) return this;
16021        if (other.hasLine()) {
16022          setLine(other.getLine());
16023        }
16024        if (other.hasConditions()) {
16025          setConditions(other.getConditions());
16026        }
16027        if (other.hasUtHits()) {
16028          setUtHits(other.getUtHits());
16029        }
16030        if (other.hasItHits()) {
16031          setItHits(other.getItHits());
16032        }
16033        if (other.hasUtCoveredConditions()) {
16034          setUtCoveredConditions(other.getUtCoveredConditions());
16035        }
16036        if (other.hasItCoveredConditions()) {
16037          setItCoveredConditions(other.getItCoveredConditions());
16038        }
16039        if (other.hasOverallCoveredConditions()) {
16040          setOverallCoveredConditions(other.getOverallCoveredConditions());
16041        }
16042        this.mergeUnknownFields(other.unknownFields);
16043        onChanged();
16044        return this;
16045      }
16046
16047      public final boolean isInitialized() {
16048        return true;
16049      }
16050
16051      public Builder mergeFrom(
16052          com.google.protobuf.CodedInputStream input,
16053          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16054          throws java.io.IOException {
16055        org.sonar.batch.protocol.output.BatchReport.Coverage parsedMessage = null;
16056        try {
16057          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
16058        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
16059          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Coverage) e.getUnfinishedMessage();
16060          throw e;
16061        } finally {
16062          if (parsedMessage != null) {
16063            mergeFrom(parsedMessage);
16064          }
16065        }
16066        return this;
16067      }
16068      private int bitField0_;
16069
16070      private int line_ ;
16071      /**
16072       * <code>optional int32 line = 1;</code>
16073       */
16074      public boolean hasLine() {
16075        return ((bitField0_ & 0x00000001) == 0x00000001);
16076      }
16077      /**
16078       * <code>optional int32 line = 1;</code>
16079       */
16080      public int getLine() {
16081        return line_;
16082      }
16083      /**
16084       * <code>optional int32 line = 1;</code>
16085       */
16086      public Builder setLine(int value) {
16087        bitField0_ |= 0x00000001;
16088        line_ = value;
16089        onChanged();
16090        return this;
16091      }
16092      /**
16093       * <code>optional int32 line = 1;</code>
16094       */
16095      public Builder clearLine() {
16096        bitField0_ = (bitField0_ & ~0x00000001);
16097        line_ = 0;
16098        onChanged();
16099        return this;
16100      }
16101
16102      private int conditions_ ;
16103      /**
16104       * <code>optional int32 conditions = 2;</code>
16105       *
16106       * <pre>
16107       * Number of conditions to cover (if set, the value must be greater than 0)
16108       * </pre>
16109       */
16110      public boolean hasConditions() {
16111        return ((bitField0_ & 0x00000002) == 0x00000002);
16112      }
16113      /**
16114       * <code>optional int32 conditions = 2;</code>
16115       *
16116       * <pre>
16117       * Number of conditions to cover (if set, the value must be greater than 0)
16118       * </pre>
16119       */
16120      public int getConditions() {
16121        return conditions_;
16122      }
16123      /**
16124       * <code>optional int32 conditions = 2;</code>
16125       *
16126       * <pre>
16127       * Number of conditions to cover (if set, the value must be greater than 0)
16128       * </pre>
16129       */
16130      public Builder setConditions(int value) {
16131        bitField0_ |= 0x00000002;
16132        conditions_ = value;
16133        onChanged();
16134        return this;
16135      }
16136      /**
16137       * <code>optional int32 conditions = 2;</code>
16138       *
16139       * <pre>
16140       * Number of conditions to cover (if set, the value must be greater than 0)
16141       * </pre>
16142       */
16143      public Builder clearConditions() {
16144        bitField0_ = (bitField0_ & ~0x00000002);
16145        conditions_ = 0;
16146        onChanged();
16147        return this;
16148      }
16149
16150      private boolean utHits_ ;
16151      /**
16152       * <code>optional bool ut_hits = 3;</code>
16153       *
16154       * <pre>
16155       * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
16156       * </pre>
16157       */
16158      public boolean hasUtHits() {
16159        return ((bitField0_ & 0x00000004) == 0x00000004);
16160      }
16161      /**
16162       * <code>optional bool ut_hits = 3;</code>
16163       *
16164       * <pre>
16165       * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
16166       * </pre>
16167       */
16168      public boolean getUtHits() {
16169        return utHits_;
16170      }
16171      /**
16172       * <code>optional bool ut_hits = 3;</code>
16173       *
16174       * <pre>
16175       * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
16176       * </pre>
16177       */
16178      public Builder setUtHits(boolean value) {
16179        bitField0_ |= 0x00000004;
16180        utHits_ = value;
16181        onChanged();
16182        return this;
16183      }
16184      /**
16185       * <code>optional bool ut_hits = 3;</code>
16186       *
16187       * <pre>
16188       * Is the line has been touched by a unit test ? Returning false means that no test has touched this executable line.
16189       * </pre>
16190       */
16191      public Builder clearUtHits() {
16192        bitField0_ = (bitField0_ & ~0x00000004);
16193        utHits_ = false;
16194        onChanged();
16195        return this;
16196      }
16197
16198      private boolean itHits_ ;
16199      /**
16200       * <code>optional bool it_hits = 4;</code>
16201       *
16202       * <pre>
16203       * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
16204       * </pre>
16205       */
16206      public boolean hasItHits() {
16207        return ((bitField0_ & 0x00000008) == 0x00000008);
16208      }
16209      /**
16210       * <code>optional bool it_hits = 4;</code>
16211       *
16212       * <pre>
16213       * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
16214       * </pre>
16215       */
16216      public boolean getItHits() {
16217        return itHits_;
16218      }
16219      /**
16220       * <code>optional bool it_hits = 4;</code>
16221       *
16222       * <pre>
16223       * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
16224       * </pre>
16225       */
16226      public Builder setItHits(boolean value) {
16227        bitField0_ |= 0x00000008;
16228        itHits_ = value;
16229        onChanged();
16230        return this;
16231      }
16232      /**
16233       * <code>optional bool it_hits = 4;</code>
16234       *
16235       * <pre>
16236       * Is the line has been touched by a integration test ? Returning false means that no test has touched this executable line.
16237       * </pre>
16238       */
16239      public Builder clearItHits() {
16240        bitField0_ = (bitField0_ & ~0x00000008);
16241        itHits_ = false;
16242        onChanged();
16243        return this;
16244      }
16245
16246      private int utCoveredConditions_ ;
16247      /**
16248       * <code>optional int32 ut_covered_conditions = 5;</code>
16249       *
16250       * <pre>
16251       * Number of conditions covered by unit tests
16252       * </pre>
16253       */
16254      public boolean hasUtCoveredConditions() {
16255        return ((bitField0_ & 0x00000010) == 0x00000010);
16256      }
16257      /**
16258       * <code>optional int32 ut_covered_conditions = 5;</code>
16259       *
16260       * <pre>
16261       * Number of conditions covered by unit tests
16262       * </pre>
16263       */
16264      public int getUtCoveredConditions() {
16265        return utCoveredConditions_;
16266      }
16267      /**
16268       * <code>optional int32 ut_covered_conditions = 5;</code>
16269       *
16270       * <pre>
16271       * Number of conditions covered by unit tests
16272       * </pre>
16273       */
16274      public Builder setUtCoveredConditions(int value) {
16275        bitField0_ |= 0x00000010;
16276        utCoveredConditions_ = value;
16277        onChanged();
16278        return this;
16279      }
16280      /**
16281       * <code>optional int32 ut_covered_conditions = 5;</code>
16282       *
16283       * <pre>
16284       * Number of conditions covered by unit tests
16285       * </pre>
16286       */
16287      public Builder clearUtCoveredConditions() {
16288        bitField0_ = (bitField0_ & ~0x00000010);
16289        utCoveredConditions_ = 0;
16290        onChanged();
16291        return this;
16292      }
16293
16294      private int itCoveredConditions_ ;
16295      /**
16296       * <code>optional int32 it_covered_conditions = 6;</code>
16297       *
16298       * <pre>
16299       * Number of conditions covered by integration tests
16300       * </pre>
16301       */
16302      public boolean hasItCoveredConditions() {
16303        return ((bitField0_ & 0x00000020) == 0x00000020);
16304      }
16305      /**
16306       * <code>optional int32 it_covered_conditions = 6;</code>
16307       *
16308       * <pre>
16309       * Number of conditions covered by integration tests
16310       * </pre>
16311       */
16312      public int getItCoveredConditions() {
16313        return itCoveredConditions_;
16314      }
16315      /**
16316       * <code>optional int32 it_covered_conditions = 6;</code>
16317       *
16318       * <pre>
16319       * Number of conditions covered by integration tests
16320       * </pre>
16321       */
16322      public Builder setItCoveredConditions(int value) {
16323        bitField0_ |= 0x00000020;
16324        itCoveredConditions_ = value;
16325        onChanged();
16326        return this;
16327      }
16328      /**
16329       * <code>optional int32 it_covered_conditions = 6;</code>
16330       *
16331       * <pre>
16332       * Number of conditions covered by integration tests
16333       * </pre>
16334       */
16335      public Builder clearItCoveredConditions() {
16336        bitField0_ = (bitField0_ & ~0x00000020);
16337        itCoveredConditions_ = 0;
16338        onChanged();
16339        return this;
16340      }
16341
16342      private int overallCoveredConditions_ ;
16343      /**
16344       * <code>optional int32 overall_covered_conditions = 7;</code>
16345       *
16346       * <pre>
16347       * Number of conditions covered by overall tests
16348       * </pre>
16349       */
16350      public boolean hasOverallCoveredConditions() {
16351        return ((bitField0_ & 0x00000040) == 0x00000040);
16352      }
16353      /**
16354       * <code>optional int32 overall_covered_conditions = 7;</code>
16355       *
16356       * <pre>
16357       * Number of conditions covered by overall tests
16358       * </pre>
16359       */
16360      public int getOverallCoveredConditions() {
16361        return overallCoveredConditions_;
16362      }
16363      /**
16364       * <code>optional int32 overall_covered_conditions = 7;</code>
16365       *
16366       * <pre>
16367       * Number of conditions covered by overall tests
16368       * </pre>
16369       */
16370      public Builder setOverallCoveredConditions(int value) {
16371        bitField0_ |= 0x00000040;
16372        overallCoveredConditions_ = value;
16373        onChanged();
16374        return this;
16375      }
16376      /**
16377       * <code>optional int32 overall_covered_conditions = 7;</code>
16378       *
16379       * <pre>
16380       * Number of conditions covered by overall tests
16381       * </pre>
16382       */
16383      public Builder clearOverallCoveredConditions() {
16384        bitField0_ = (bitField0_ & ~0x00000040);
16385        overallCoveredConditions_ = 0;
16386        onChanged();
16387        return this;
16388      }
16389
16390      // @@protoc_insertion_point(builder_scope:Coverage)
16391    }
16392
16393    // @@protoc_insertion_point(class_scope:Coverage)
16394    private static final org.sonar.batch.protocol.output.BatchReport.Coverage DEFAULT_INSTANCE;
16395    static {
16396      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Coverage();
16397    }
16398
16399    public static org.sonar.batch.protocol.output.BatchReport.Coverage getDefaultInstance() {
16400      return DEFAULT_INSTANCE;
16401    }
16402
16403    @java.lang.Deprecated public static final com.google.protobuf.Parser<Coverage>
16404        PARSER = new com.google.protobuf.AbstractParser<Coverage>() {
16405      public Coverage parsePartialFrom(
16406          com.google.protobuf.CodedInputStream input,
16407          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16408          throws com.google.protobuf.InvalidProtocolBufferException {
16409        try {
16410          return new Coverage(input, extensionRegistry);
16411        } catch (RuntimeException e) {
16412          if (e.getCause() instanceof
16413              com.google.protobuf.InvalidProtocolBufferException) {
16414            throw (com.google.protobuf.InvalidProtocolBufferException)
16415                e.getCause();
16416          }
16417          throw e;
16418        }
16419      }
16420    };
16421
16422    public static com.google.protobuf.Parser<Coverage> parser() {
16423      return PARSER;
16424    }
16425
16426    @java.lang.Override
16427    public com.google.protobuf.Parser<Coverage> getParserForType() {
16428      return PARSER;
16429    }
16430
16431    public org.sonar.batch.protocol.output.BatchReport.Coverage getDefaultInstanceForType() {
16432      return DEFAULT_INSTANCE;
16433    }
16434
16435  }
16436
16437  public interface SyntaxHighlightingOrBuilder extends
16438      // @@protoc_insertion_point(interface_extends:SyntaxHighlighting)
16439      com.google.protobuf.MessageOrBuilder {
16440
16441    /**
16442     * <code>optional .TextRange range = 1;</code>
16443     */
16444    boolean hasRange();
16445    /**
16446     * <code>optional .TextRange range = 1;</code>
16447     */
16448    org.sonar.batch.protocol.output.BatchReport.TextRange getRange();
16449    /**
16450     * <code>optional .TextRange range = 1;</code>
16451     */
16452    org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getRangeOrBuilder();
16453
16454    /**
16455     * <code>optional .HighlightingType type = 2;</code>
16456     */
16457    boolean hasType();
16458    /**
16459     * <code>optional .HighlightingType type = 2;</code>
16460     */
16461    org.sonar.batch.protocol.Constants.HighlightingType getType();
16462  }
16463  /**
16464   * Protobuf type {@code SyntaxHighlighting}
16465   *
16466   * <pre>
16467   * Must be sorted by line and start offset
16468   * TODO rename it SyntaxHighlightingRule ?
16469   * </pre>
16470   */
16471  public  static final class SyntaxHighlighting extends
16472      com.google.protobuf.GeneratedMessage implements
16473      // @@protoc_insertion_point(message_implements:SyntaxHighlighting)
16474      SyntaxHighlightingOrBuilder {
16475    // Use SyntaxHighlighting.newBuilder() to construct.
16476    private SyntaxHighlighting(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
16477      super(builder);
16478    }
16479    private SyntaxHighlighting() {
16480      type_ = 0;
16481    }
16482
16483    @java.lang.Override
16484    public final com.google.protobuf.UnknownFieldSet
16485    getUnknownFields() {
16486      return this.unknownFields;
16487    }
16488    private SyntaxHighlighting(
16489        com.google.protobuf.CodedInputStream input,
16490        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
16491      this();
16492      int mutable_bitField0_ = 0;
16493      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
16494          com.google.protobuf.UnknownFieldSet.newBuilder();
16495      try {
16496        boolean done = false;
16497        while (!done) {
16498          int tag = input.readTag();
16499          switch (tag) {
16500            case 0:
16501              done = true;
16502              break;
16503            default: {
16504              if (!parseUnknownField(input, unknownFields,
16505                                     extensionRegistry, tag)) {
16506                done = true;
16507              }
16508              break;
16509            }
16510            case 10: {
16511              org.sonar.batch.protocol.output.BatchReport.TextRange.Builder subBuilder = null;
16512              if (((bitField0_ & 0x00000001) == 0x00000001)) {
16513                subBuilder = range_.toBuilder();
16514              }
16515              range_ = input.readMessage(org.sonar.batch.protocol.output.BatchReport.TextRange.parser(), extensionRegistry);
16516              if (subBuilder != null) {
16517                subBuilder.mergeFrom(range_);
16518                range_ = subBuilder.buildPartial();
16519              }
16520              bitField0_ |= 0x00000001;
16521              break;
16522            }
16523            case 16: {
16524              int rawValue = input.readEnum();
16525              org.sonar.batch.protocol.Constants.HighlightingType value = org.sonar.batch.protocol.Constants.HighlightingType.valueOf(rawValue);
16526              if (value == null) {
16527                unknownFields.mergeVarintField(2, rawValue);
16528              } else {
16529                bitField0_ |= 0x00000002;
16530                type_ = rawValue;
16531              }
16532              break;
16533            }
16534          }
16535        }
16536      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
16537        throw new RuntimeException(e.setUnfinishedMessage(this));
16538      } catch (java.io.IOException e) {
16539        throw new RuntimeException(
16540            new com.google.protobuf.InvalidProtocolBufferException(
16541                e.getMessage()).setUnfinishedMessage(this));
16542      } finally {
16543        this.unknownFields = unknownFields.build();
16544        makeExtensionsImmutable();
16545      }
16546    }
16547    public static final com.google.protobuf.Descriptors.Descriptor
16548        getDescriptor() {
16549      return org.sonar.batch.protocol.output.BatchReport.internal_static_SyntaxHighlighting_descriptor;
16550    }
16551
16552    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
16553        internalGetFieldAccessorTable() {
16554      return org.sonar.batch.protocol.output.BatchReport.internal_static_SyntaxHighlighting_fieldAccessorTable
16555          .ensureFieldAccessorsInitialized(
16556              org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.class, org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.Builder.class);
16557    }
16558
16559    private int bitField0_;
16560    public static final int RANGE_FIELD_NUMBER = 1;
16561    private org.sonar.batch.protocol.output.BatchReport.TextRange range_;
16562    /**
16563     * <code>optional .TextRange range = 1;</code>
16564     */
16565    public boolean hasRange() {
16566      return ((bitField0_ & 0x00000001) == 0x00000001);
16567    }
16568    /**
16569     * <code>optional .TextRange range = 1;</code>
16570     */
16571    public org.sonar.batch.protocol.output.BatchReport.TextRange getRange() {
16572      return range_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
16573    }
16574    /**
16575     * <code>optional .TextRange range = 1;</code>
16576     */
16577    public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getRangeOrBuilder() {
16578      return range_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
16579    }
16580
16581    public static final int TYPE_FIELD_NUMBER = 2;
16582    private int type_;
16583    /**
16584     * <code>optional .HighlightingType type = 2;</code>
16585     */
16586    public boolean hasType() {
16587      return ((bitField0_ & 0x00000002) == 0x00000002);
16588    }
16589    /**
16590     * <code>optional .HighlightingType type = 2;</code>
16591     */
16592    public org.sonar.batch.protocol.Constants.HighlightingType getType() {
16593      org.sonar.batch.protocol.Constants.HighlightingType result = org.sonar.batch.protocol.Constants.HighlightingType.valueOf(type_);
16594      return result == null ? org.sonar.batch.protocol.Constants.HighlightingType.ANNOTATION : result;
16595    }
16596
16597    private byte memoizedIsInitialized = -1;
16598    public final boolean isInitialized() {
16599      byte isInitialized = memoizedIsInitialized;
16600      if (isInitialized == 1) return true;
16601      if (isInitialized == 0) return false;
16602
16603      memoizedIsInitialized = 1;
16604      return true;
16605    }
16606
16607    public void writeTo(com.google.protobuf.CodedOutputStream output)
16608                        throws java.io.IOException {
16609      if (((bitField0_ & 0x00000001) == 0x00000001)) {
16610        output.writeMessage(1, getRange());
16611      }
16612      if (((bitField0_ & 0x00000002) == 0x00000002)) {
16613        output.writeEnum(2, type_);
16614      }
16615      unknownFields.writeTo(output);
16616    }
16617
16618    public int getSerializedSize() {
16619      int size = memoizedSize;
16620      if (size != -1) return size;
16621
16622      size = 0;
16623      if (((bitField0_ & 0x00000001) == 0x00000001)) {
16624        size += com.google.protobuf.CodedOutputStream
16625          .computeMessageSize(1, getRange());
16626      }
16627      if (((bitField0_ & 0x00000002) == 0x00000002)) {
16628        size += com.google.protobuf.CodedOutputStream
16629          .computeEnumSize(2, type_);
16630      }
16631      size += unknownFields.getSerializedSize();
16632      memoizedSize = size;
16633      return size;
16634    }
16635
16636    private static final long serialVersionUID = 0L;
16637    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(
16638        com.google.protobuf.ByteString data)
16639        throws com.google.protobuf.InvalidProtocolBufferException {
16640      return PARSER.parseFrom(data);
16641    }
16642    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(
16643        com.google.protobuf.ByteString data,
16644        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16645        throws com.google.protobuf.InvalidProtocolBufferException {
16646      return PARSER.parseFrom(data, extensionRegistry);
16647    }
16648    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(byte[] data)
16649        throws com.google.protobuf.InvalidProtocolBufferException {
16650      return PARSER.parseFrom(data);
16651    }
16652    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(
16653        byte[] data,
16654        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16655        throws com.google.protobuf.InvalidProtocolBufferException {
16656      return PARSER.parseFrom(data, extensionRegistry);
16657    }
16658    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(java.io.InputStream input)
16659        throws java.io.IOException {
16660      return PARSER.parseFrom(input);
16661    }
16662    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(
16663        java.io.InputStream input,
16664        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16665        throws java.io.IOException {
16666      return PARSER.parseFrom(input, extensionRegistry);
16667    }
16668    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseDelimitedFrom(java.io.InputStream input)
16669        throws java.io.IOException {
16670      return PARSER.parseDelimitedFrom(input);
16671    }
16672    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseDelimitedFrom(
16673        java.io.InputStream input,
16674        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16675        throws java.io.IOException {
16676      return PARSER.parseDelimitedFrom(input, extensionRegistry);
16677    }
16678    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(
16679        com.google.protobuf.CodedInputStream input)
16680        throws java.io.IOException {
16681      return PARSER.parseFrom(input);
16682    }
16683    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parseFrom(
16684        com.google.protobuf.CodedInputStream input,
16685        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16686        throws java.io.IOException {
16687      return PARSER.parseFrom(input, extensionRegistry);
16688    }
16689
16690    public Builder newBuilderForType() { return newBuilder(); }
16691    public static Builder newBuilder() {
16692      return DEFAULT_INSTANCE.toBuilder();
16693    }
16694    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting prototype) {
16695      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
16696    }
16697    public Builder toBuilder() {
16698      return this == DEFAULT_INSTANCE
16699          ? new Builder() : new Builder().mergeFrom(this);
16700    }
16701
16702    @java.lang.Override
16703    protected Builder newBuilderForType(
16704        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
16705      Builder builder = new Builder(parent);
16706      return builder;
16707    }
16708    /**
16709     * Protobuf type {@code SyntaxHighlighting}
16710     *
16711     * <pre>
16712     * Must be sorted by line and start offset
16713     * TODO rename it SyntaxHighlightingRule ?
16714     * </pre>
16715     */
16716    public static final class Builder extends
16717        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
16718        // @@protoc_insertion_point(builder_implements:SyntaxHighlighting)
16719        org.sonar.batch.protocol.output.BatchReport.SyntaxHighlightingOrBuilder {
16720      public static final com.google.protobuf.Descriptors.Descriptor
16721          getDescriptor() {
16722        return org.sonar.batch.protocol.output.BatchReport.internal_static_SyntaxHighlighting_descriptor;
16723      }
16724
16725      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
16726          internalGetFieldAccessorTable() {
16727        return org.sonar.batch.protocol.output.BatchReport.internal_static_SyntaxHighlighting_fieldAccessorTable
16728            .ensureFieldAccessorsInitialized(
16729                org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.class, org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.Builder.class);
16730      }
16731
16732      // Construct using org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.newBuilder()
16733      private Builder() {
16734        maybeForceBuilderInitialization();
16735      }
16736
16737      private Builder(
16738          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
16739        super(parent);
16740        maybeForceBuilderInitialization();
16741      }
16742      private void maybeForceBuilderInitialization() {
16743        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
16744          getRangeFieldBuilder();
16745        }
16746      }
16747      public Builder clear() {
16748        super.clear();
16749        if (rangeBuilder_ == null) {
16750          range_ = null;
16751        } else {
16752          rangeBuilder_.clear();
16753        }
16754        bitField0_ = (bitField0_ & ~0x00000001);
16755        type_ = 0;
16756        bitField0_ = (bitField0_ & ~0x00000002);
16757        return this;
16758      }
16759
16760      public com.google.protobuf.Descriptors.Descriptor
16761          getDescriptorForType() {
16762        return org.sonar.batch.protocol.output.BatchReport.internal_static_SyntaxHighlighting_descriptor;
16763      }
16764
16765      public org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting getDefaultInstanceForType() {
16766        return org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.getDefaultInstance();
16767      }
16768
16769      public org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting build() {
16770        org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting result = buildPartial();
16771        if (!result.isInitialized()) {
16772          throw newUninitializedMessageException(result);
16773        }
16774        return result;
16775      }
16776
16777      public org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting buildPartial() {
16778        org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting result = new org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting(this);
16779        int from_bitField0_ = bitField0_;
16780        int to_bitField0_ = 0;
16781        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
16782          to_bitField0_ |= 0x00000001;
16783        }
16784        if (rangeBuilder_ == null) {
16785          result.range_ = range_;
16786        } else {
16787          result.range_ = rangeBuilder_.build();
16788        }
16789        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
16790          to_bitField0_ |= 0x00000002;
16791        }
16792        result.type_ = type_;
16793        result.bitField0_ = to_bitField0_;
16794        onBuilt();
16795        return result;
16796      }
16797
16798      public Builder mergeFrom(com.google.protobuf.Message other) {
16799        if (other instanceof org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting) {
16800          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting)other);
16801        } else {
16802          super.mergeFrom(other);
16803          return this;
16804        }
16805      }
16806
16807      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting other) {
16808        if (other == org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting.getDefaultInstance()) return this;
16809        if (other.hasRange()) {
16810          mergeRange(other.getRange());
16811        }
16812        if (other.hasType()) {
16813          setType(other.getType());
16814        }
16815        this.mergeUnknownFields(other.unknownFields);
16816        onChanged();
16817        return this;
16818      }
16819
16820      public final boolean isInitialized() {
16821        return true;
16822      }
16823
16824      public Builder mergeFrom(
16825          com.google.protobuf.CodedInputStream input,
16826          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
16827          throws java.io.IOException {
16828        org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting parsedMessage = null;
16829        try {
16830          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
16831        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
16832          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting) e.getUnfinishedMessage();
16833          throw e;
16834        } finally {
16835          if (parsedMessage != null) {
16836            mergeFrom(parsedMessage);
16837          }
16838        }
16839        return this;
16840      }
16841      private int bitField0_;
16842
16843      private org.sonar.batch.protocol.output.BatchReport.TextRange range_ = null;
16844      private com.google.protobuf.SingleFieldBuilder<
16845          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> rangeBuilder_;
16846      /**
16847       * <code>optional .TextRange range = 1;</code>
16848       */
16849      public boolean hasRange() {
16850        return ((bitField0_ & 0x00000001) == 0x00000001);
16851      }
16852      /**
16853       * <code>optional .TextRange range = 1;</code>
16854       */
16855      public org.sonar.batch.protocol.output.BatchReport.TextRange getRange() {
16856        if (rangeBuilder_ == null) {
16857          return range_ == null ? org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
16858        } else {
16859          return rangeBuilder_.getMessage();
16860        }
16861      }
16862      /**
16863       * <code>optional .TextRange range = 1;</code>
16864       */
16865      public Builder setRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
16866        if (rangeBuilder_ == null) {
16867          if (value == null) {
16868            throw new NullPointerException();
16869          }
16870          range_ = value;
16871          onChanged();
16872        } else {
16873          rangeBuilder_.setMessage(value);
16874        }
16875        bitField0_ |= 0x00000001;
16876        return this;
16877      }
16878      /**
16879       * <code>optional .TextRange range = 1;</code>
16880       */
16881      public Builder setRange(
16882          org.sonar.batch.protocol.output.BatchReport.TextRange.Builder builderForValue) {
16883        if (rangeBuilder_ == null) {
16884          range_ = builderForValue.build();
16885          onChanged();
16886        } else {
16887          rangeBuilder_.setMessage(builderForValue.build());
16888        }
16889        bitField0_ |= 0x00000001;
16890        return this;
16891      }
16892      /**
16893       * <code>optional .TextRange range = 1;</code>
16894       */
16895      public Builder mergeRange(org.sonar.batch.protocol.output.BatchReport.TextRange value) {
16896        if (rangeBuilder_ == null) {
16897          if (((bitField0_ & 0x00000001) == 0x00000001) &&
16898              range_ != null &&
16899              range_ != org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance()) {
16900            range_ =
16901              org.sonar.batch.protocol.output.BatchReport.TextRange.newBuilder(range_).mergeFrom(value).buildPartial();
16902          } else {
16903            range_ = value;
16904          }
16905          onChanged();
16906        } else {
16907          rangeBuilder_.mergeFrom(value);
16908        }
16909        bitField0_ |= 0x00000001;
16910        return this;
16911      }
16912      /**
16913       * <code>optional .TextRange range = 1;</code>
16914       */
16915      public Builder clearRange() {
16916        if (rangeBuilder_ == null) {
16917          range_ = null;
16918          onChanged();
16919        } else {
16920          rangeBuilder_.clear();
16921        }
16922        bitField0_ = (bitField0_ & ~0x00000001);
16923        return this;
16924      }
16925      /**
16926       * <code>optional .TextRange range = 1;</code>
16927       */
16928      public org.sonar.batch.protocol.output.BatchReport.TextRange.Builder getRangeBuilder() {
16929        bitField0_ |= 0x00000001;
16930        onChanged();
16931        return getRangeFieldBuilder().getBuilder();
16932      }
16933      /**
16934       * <code>optional .TextRange range = 1;</code>
16935       */
16936      public org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder getRangeOrBuilder() {
16937        if (rangeBuilder_ != null) {
16938          return rangeBuilder_.getMessageOrBuilder();
16939        } else {
16940          return range_ == null ?
16941              org.sonar.batch.protocol.output.BatchReport.TextRange.getDefaultInstance() : range_;
16942        }
16943      }
16944      /**
16945       * <code>optional .TextRange range = 1;</code>
16946       */
16947      private com.google.protobuf.SingleFieldBuilder<
16948          org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder> 
16949          getRangeFieldBuilder() {
16950        if (rangeBuilder_ == null) {
16951          rangeBuilder_ = new com.google.protobuf.SingleFieldBuilder<
16952              org.sonar.batch.protocol.output.BatchReport.TextRange, org.sonar.batch.protocol.output.BatchReport.TextRange.Builder, org.sonar.batch.protocol.output.BatchReport.TextRangeOrBuilder>(
16953                  getRange(),
16954                  getParentForChildren(),
16955                  isClean());
16956          range_ = null;
16957        }
16958        return rangeBuilder_;
16959      }
16960
16961      private int type_ = 0;
16962      /**
16963       * <code>optional .HighlightingType type = 2;</code>
16964       */
16965      public boolean hasType() {
16966        return ((bitField0_ & 0x00000002) == 0x00000002);
16967      }
16968      /**
16969       * <code>optional .HighlightingType type = 2;</code>
16970       */
16971      public org.sonar.batch.protocol.Constants.HighlightingType getType() {
16972        org.sonar.batch.protocol.Constants.HighlightingType result = org.sonar.batch.protocol.Constants.HighlightingType.valueOf(type_);
16973        return result == null ? org.sonar.batch.protocol.Constants.HighlightingType.ANNOTATION : result;
16974      }
16975      /**
16976       * <code>optional .HighlightingType type = 2;</code>
16977       */
16978      public Builder setType(org.sonar.batch.protocol.Constants.HighlightingType value) {
16979        if (value == null) {
16980          throw new NullPointerException();
16981        }
16982        bitField0_ |= 0x00000002;
16983        type_ = value.getNumber();
16984        onChanged();
16985        return this;
16986      }
16987      /**
16988       * <code>optional .HighlightingType type = 2;</code>
16989       */
16990      public Builder clearType() {
16991        bitField0_ = (bitField0_ & ~0x00000002);
16992        type_ = 0;
16993        onChanged();
16994        return this;
16995      }
16996
16997      // @@protoc_insertion_point(builder_scope:SyntaxHighlighting)
16998    }
16999
17000    // @@protoc_insertion_point(class_scope:SyntaxHighlighting)
17001    private static final org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting DEFAULT_INSTANCE;
17002    static {
17003      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting();
17004    }
17005
17006    public static org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting getDefaultInstance() {
17007      return DEFAULT_INSTANCE;
17008    }
17009
17010    @java.lang.Deprecated public static final com.google.protobuf.Parser<SyntaxHighlighting>
17011        PARSER = new com.google.protobuf.AbstractParser<SyntaxHighlighting>() {
17012      public SyntaxHighlighting parsePartialFrom(
17013          com.google.protobuf.CodedInputStream input,
17014          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17015          throws com.google.protobuf.InvalidProtocolBufferException {
17016        try {
17017          return new SyntaxHighlighting(input, extensionRegistry);
17018        } catch (RuntimeException e) {
17019          if (e.getCause() instanceof
17020              com.google.protobuf.InvalidProtocolBufferException) {
17021            throw (com.google.protobuf.InvalidProtocolBufferException)
17022                e.getCause();
17023          }
17024          throw e;
17025        }
17026      }
17027    };
17028
17029    public static com.google.protobuf.Parser<SyntaxHighlighting> parser() {
17030      return PARSER;
17031    }
17032
17033    @java.lang.Override
17034    public com.google.protobuf.Parser<SyntaxHighlighting> getParserForType() {
17035      return PARSER;
17036    }
17037
17038    public org.sonar.batch.protocol.output.BatchReport.SyntaxHighlighting getDefaultInstanceForType() {
17039      return DEFAULT_INSTANCE;
17040    }
17041
17042  }
17043
17044  public interface TestOrBuilder extends
17045      // @@protoc_insertion_point(interface_extends:Test)
17046      com.google.protobuf.MessageOrBuilder {
17047
17048    /**
17049     * <code>optional string name = 1;</code>
17050     */
17051    boolean hasName();
17052    /**
17053     * <code>optional string name = 1;</code>
17054     */
17055    java.lang.String getName();
17056    /**
17057     * <code>optional string name = 1;</code>
17058     */
17059    com.google.protobuf.ByteString
17060        getNameBytes();
17061
17062    /**
17063     * <code>optional .TestStatus status = 2;</code>
17064     */
17065    boolean hasStatus();
17066    /**
17067     * <code>optional .TestStatus status = 2;</code>
17068     */
17069    org.sonar.batch.protocol.Constants.TestStatus getStatus();
17070
17071    /**
17072     * <code>optional int64 duration_in_ms = 3;</code>
17073     */
17074    boolean hasDurationInMs();
17075    /**
17076     * <code>optional int64 duration_in_ms = 3;</code>
17077     */
17078    long getDurationInMs();
17079
17080    /**
17081     * <code>optional string stacktrace = 4;</code>
17082     */
17083    boolean hasStacktrace();
17084    /**
17085     * <code>optional string stacktrace = 4;</code>
17086     */
17087    java.lang.String getStacktrace();
17088    /**
17089     * <code>optional string stacktrace = 4;</code>
17090     */
17091    com.google.protobuf.ByteString
17092        getStacktraceBytes();
17093
17094    /**
17095     * <code>optional string msg = 5;</code>
17096     */
17097    boolean hasMsg();
17098    /**
17099     * <code>optional string msg = 5;</code>
17100     */
17101    java.lang.String getMsg();
17102    /**
17103     * <code>optional string msg = 5;</code>
17104     */
17105    com.google.protobuf.ByteString
17106        getMsgBytes();
17107  }
17108  /**
17109   * Protobuf type {@code Test}
17110   */
17111  public  static final class Test extends
17112      com.google.protobuf.GeneratedMessage implements
17113      // @@protoc_insertion_point(message_implements:Test)
17114      TestOrBuilder {
17115    // Use Test.newBuilder() to construct.
17116    private Test(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
17117      super(builder);
17118    }
17119    private Test() {
17120      name_ = "";
17121      status_ = 1;
17122      durationInMs_ = 0L;
17123      stacktrace_ = "";
17124      msg_ = "";
17125    }
17126
17127    @java.lang.Override
17128    public final com.google.protobuf.UnknownFieldSet
17129    getUnknownFields() {
17130      return this.unknownFields;
17131    }
17132    private Test(
17133        com.google.protobuf.CodedInputStream input,
17134        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
17135      this();
17136      int mutable_bitField0_ = 0;
17137      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
17138          com.google.protobuf.UnknownFieldSet.newBuilder();
17139      try {
17140        boolean done = false;
17141        while (!done) {
17142          int tag = input.readTag();
17143          switch (tag) {
17144            case 0:
17145              done = true;
17146              break;
17147            default: {
17148              if (!parseUnknownField(input, unknownFields,
17149                                     extensionRegistry, tag)) {
17150                done = true;
17151              }
17152              break;
17153            }
17154            case 10: {
17155              com.google.protobuf.ByteString bs = input.readBytes();
17156              bitField0_ |= 0x00000001;
17157              name_ = bs;
17158              break;
17159            }
17160            case 16: {
17161              int rawValue = input.readEnum();
17162              org.sonar.batch.protocol.Constants.TestStatus value = org.sonar.batch.protocol.Constants.TestStatus.valueOf(rawValue);
17163              if (value == null) {
17164                unknownFields.mergeVarintField(2, rawValue);
17165              } else {
17166                bitField0_ |= 0x00000002;
17167                status_ = rawValue;
17168              }
17169              break;
17170            }
17171            case 24: {
17172              bitField0_ |= 0x00000004;
17173              durationInMs_ = input.readInt64();
17174              break;
17175            }
17176            case 34: {
17177              com.google.protobuf.ByteString bs = input.readBytes();
17178              bitField0_ |= 0x00000008;
17179              stacktrace_ = bs;
17180              break;
17181            }
17182            case 42: {
17183              com.google.protobuf.ByteString bs = input.readBytes();
17184              bitField0_ |= 0x00000010;
17185              msg_ = bs;
17186              break;
17187            }
17188          }
17189        }
17190      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
17191        throw new RuntimeException(e.setUnfinishedMessage(this));
17192      } catch (java.io.IOException e) {
17193        throw new RuntimeException(
17194            new com.google.protobuf.InvalidProtocolBufferException(
17195                e.getMessage()).setUnfinishedMessage(this));
17196      } finally {
17197        this.unknownFields = unknownFields.build();
17198        makeExtensionsImmutable();
17199      }
17200    }
17201    public static final com.google.protobuf.Descriptors.Descriptor
17202        getDescriptor() {
17203      return org.sonar.batch.protocol.output.BatchReport.internal_static_Test_descriptor;
17204    }
17205
17206    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
17207        internalGetFieldAccessorTable() {
17208      return org.sonar.batch.protocol.output.BatchReport.internal_static_Test_fieldAccessorTable
17209          .ensureFieldAccessorsInitialized(
17210              org.sonar.batch.protocol.output.BatchReport.Test.class, org.sonar.batch.protocol.output.BatchReport.Test.Builder.class);
17211    }
17212
17213    private int bitField0_;
17214    public static final int NAME_FIELD_NUMBER = 1;
17215    private volatile java.lang.Object name_;
17216    /**
17217     * <code>optional string name = 1;</code>
17218     */
17219    public boolean hasName() {
17220      return ((bitField0_ & 0x00000001) == 0x00000001);
17221    }
17222    /**
17223     * <code>optional string name = 1;</code>
17224     */
17225    public java.lang.String getName() {
17226      java.lang.Object ref = name_;
17227      if (ref instanceof java.lang.String) {
17228        return (java.lang.String) ref;
17229      } else {
17230        com.google.protobuf.ByteString bs = 
17231            (com.google.protobuf.ByteString) ref;
17232        java.lang.String s = bs.toStringUtf8();
17233        if (bs.isValidUtf8()) {
17234          name_ = s;
17235        }
17236        return s;
17237      }
17238    }
17239    /**
17240     * <code>optional string name = 1;</code>
17241     */
17242    public com.google.protobuf.ByteString
17243        getNameBytes() {
17244      java.lang.Object ref = name_;
17245      if (ref instanceof java.lang.String) {
17246        com.google.protobuf.ByteString b = 
17247            com.google.protobuf.ByteString.copyFromUtf8(
17248                (java.lang.String) ref);
17249        name_ = b;
17250        return b;
17251      } else {
17252        return (com.google.protobuf.ByteString) ref;
17253      }
17254    }
17255
17256    public static final int STATUS_FIELD_NUMBER = 2;
17257    private int status_;
17258    /**
17259     * <code>optional .TestStatus status = 2;</code>
17260     */
17261    public boolean hasStatus() {
17262      return ((bitField0_ & 0x00000002) == 0x00000002);
17263    }
17264    /**
17265     * <code>optional .TestStatus status = 2;</code>
17266     */
17267    public org.sonar.batch.protocol.Constants.TestStatus getStatus() {
17268      org.sonar.batch.protocol.Constants.TestStatus result = org.sonar.batch.protocol.Constants.TestStatus.valueOf(status_);
17269      return result == null ? org.sonar.batch.protocol.Constants.TestStatus.OK : result;
17270    }
17271
17272    public static final int DURATION_IN_MS_FIELD_NUMBER = 3;
17273    private long durationInMs_;
17274    /**
17275     * <code>optional int64 duration_in_ms = 3;</code>
17276     */
17277    public boolean hasDurationInMs() {
17278      return ((bitField0_ & 0x00000004) == 0x00000004);
17279    }
17280    /**
17281     * <code>optional int64 duration_in_ms = 3;</code>
17282     */
17283    public long getDurationInMs() {
17284      return durationInMs_;
17285    }
17286
17287    public static final int STACKTRACE_FIELD_NUMBER = 4;
17288    private volatile java.lang.Object stacktrace_;
17289    /**
17290     * <code>optional string stacktrace = 4;</code>
17291     */
17292    public boolean hasStacktrace() {
17293      return ((bitField0_ & 0x00000008) == 0x00000008);
17294    }
17295    /**
17296     * <code>optional string stacktrace = 4;</code>
17297     */
17298    public java.lang.String getStacktrace() {
17299      java.lang.Object ref = stacktrace_;
17300      if (ref instanceof java.lang.String) {
17301        return (java.lang.String) ref;
17302      } else {
17303        com.google.protobuf.ByteString bs = 
17304            (com.google.protobuf.ByteString) ref;
17305        java.lang.String s = bs.toStringUtf8();
17306        if (bs.isValidUtf8()) {
17307          stacktrace_ = s;
17308        }
17309        return s;
17310      }
17311    }
17312    /**
17313     * <code>optional string stacktrace = 4;</code>
17314     */
17315    public com.google.protobuf.ByteString
17316        getStacktraceBytes() {
17317      java.lang.Object ref = stacktrace_;
17318      if (ref instanceof java.lang.String) {
17319        com.google.protobuf.ByteString b = 
17320            com.google.protobuf.ByteString.copyFromUtf8(
17321                (java.lang.String) ref);
17322        stacktrace_ = b;
17323        return b;
17324      } else {
17325        return (com.google.protobuf.ByteString) ref;
17326      }
17327    }
17328
17329    public static final int MSG_FIELD_NUMBER = 5;
17330    private volatile java.lang.Object msg_;
17331    /**
17332     * <code>optional string msg = 5;</code>
17333     */
17334    public boolean hasMsg() {
17335      return ((bitField0_ & 0x00000010) == 0x00000010);
17336    }
17337    /**
17338     * <code>optional string msg = 5;</code>
17339     */
17340    public java.lang.String getMsg() {
17341      java.lang.Object ref = msg_;
17342      if (ref instanceof java.lang.String) {
17343        return (java.lang.String) ref;
17344      } else {
17345        com.google.protobuf.ByteString bs = 
17346            (com.google.protobuf.ByteString) ref;
17347        java.lang.String s = bs.toStringUtf8();
17348        if (bs.isValidUtf8()) {
17349          msg_ = s;
17350        }
17351        return s;
17352      }
17353    }
17354    /**
17355     * <code>optional string msg = 5;</code>
17356     */
17357    public com.google.protobuf.ByteString
17358        getMsgBytes() {
17359      java.lang.Object ref = msg_;
17360      if (ref instanceof java.lang.String) {
17361        com.google.protobuf.ByteString b = 
17362            com.google.protobuf.ByteString.copyFromUtf8(
17363                (java.lang.String) ref);
17364        msg_ = b;
17365        return b;
17366      } else {
17367        return (com.google.protobuf.ByteString) ref;
17368      }
17369    }
17370
17371    private byte memoizedIsInitialized = -1;
17372    public final boolean isInitialized() {
17373      byte isInitialized = memoizedIsInitialized;
17374      if (isInitialized == 1) return true;
17375      if (isInitialized == 0) return false;
17376
17377      memoizedIsInitialized = 1;
17378      return true;
17379    }
17380
17381    public void writeTo(com.google.protobuf.CodedOutputStream output)
17382                        throws java.io.IOException {
17383      if (((bitField0_ & 0x00000001) == 0x00000001)) {
17384        com.google.protobuf.GeneratedMessage.writeString(output, 1, name_);
17385      }
17386      if (((bitField0_ & 0x00000002) == 0x00000002)) {
17387        output.writeEnum(2, status_);
17388      }
17389      if (((bitField0_ & 0x00000004) == 0x00000004)) {
17390        output.writeInt64(3, durationInMs_);
17391      }
17392      if (((bitField0_ & 0x00000008) == 0x00000008)) {
17393        com.google.protobuf.GeneratedMessage.writeString(output, 4, stacktrace_);
17394      }
17395      if (((bitField0_ & 0x00000010) == 0x00000010)) {
17396        com.google.protobuf.GeneratedMessage.writeString(output, 5, msg_);
17397      }
17398      unknownFields.writeTo(output);
17399    }
17400
17401    public int getSerializedSize() {
17402      int size = memoizedSize;
17403      if (size != -1) return size;
17404
17405      size = 0;
17406      if (((bitField0_ & 0x00000001) == 0x00000001)) {
17407        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, name_);
17408      }
17409      if (((bitField0_ & 0x00000002) == 0x00000002)) {
17410        size += com.google.protobuf.CodedOutputStream
17411          .computeEnumSize(2, status_);
17412      }
17413      if (((bitField0_ & 0x00000004) == 0x00000004)) {
17414        size += com.google.protobuf.CodedOutputStream
17415          .computeInt64Size(3, durationInMs_);
17416      }
17417      if (((bitField0_ & 0x00000008) == 0x00000008)) {
17418        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, stacktrace_);
17419      }
17420      if (((bitField0_ & 0x00000010) == 0x00000010)) {
17421        size += com.google.protobuf.GeneratedMessage.computeStringSize(5, msg_);
17422      }
17423      size += unknownFields.getSerializedSize();
17424      memoizedSize = size;
17425      return size;
17426    }
17427
17428    private static final long serialVersionUID = 0L;
17429    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(
17430        com.google.protobuf.ByteString data)
17431        throws com.google.protobuf.InvalidProtocolBufferException {
17432      return PARSER.parseFrom(data);
17433    }
17434    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(
17435        com.google.protobuf.ByteString data,
17436        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17437        throws com.google.protobuf.InvalidProtocolBufferException {
17438      return PARSER.parseFrom(data, extensionRegistry);
17439    }
17440    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(byte[] data)
17441        throws com.google.protobuf.InvalidProtocolBufferException {
17442      return PARSER.parseFrom(data);
17443    }
17444    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(
17445        byte[] data,
17446        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17447        throws com.google.protobuf.InvalidProtocolBufferException {
17448      return PARSER.parseFrom(data, extensionRegistry);
17449    }
17450    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(java.io.InputStream input)
17451        throws java.io.IOException {
17452      return PARSER.parseFrom(input);
17453    }
17454    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(
17455        java.io.InputStream input,
17456        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17457        throws java.io.IOException {
17458      return PARSER.parseFrom(input, extensionRegistry);
17459    }
17460    public static org.sonar.batch.protocol.output.BatchReport.Test parseDelimitedFrom(java.io.InputStream input)
17461        throws java.io.IOException {
17462      return PARSER.parseDelimitedFrom(input);
17463    }
17464    public static org.sonar.batch.protocol.output.BatchReport.Test parseDelimitedFrom(
17465        java.io.InputStream input,
17466        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17467        throws java.io.IOException {
17468      return PARSER.parseDelimitedFrom(input, extensionRegistry);
17469    }
17470    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(
17471        com.google.protobuf.CodedInputStream input)
17472        throws java.io.IOException {
17473      return PARSER.parseFrom(input);
17474    }
17475    public static org.sonar.batch.protocol.output.BatchReport.Test parseFrom(
17476        com.google.protobuf.CodedInputStream input,
17477        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17478        throws java.io.IOException {
17479      return PARSER.parseFrom(input, extensionRegistry);
17480    }
17481
17482    public Builder newBuilderForType() { return newBuilder(); }
17483    public static Builder newBuilder() {
17484      return DEFAULT_INSTANCE.toBuilder();
17485    }
17486    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.Test prototype) {
17487      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
17488    }
17489    public Builder toBuilder() {
17490      return this == DEFAULT_INSTANCE
17491          ? new Builder() : new Builder().mergeFrom(this);
17492    }
17493
17494    @java.lang.Override
17495    protected Builder newBuilderForType(
17496        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
17497      Builder builder = new Builder(parent);
17498      return builder;
17499    }
17500    /**
17501     * Protobuf type {@code Test}
17502     */
17503    public static final class Builder extends
17504        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
17505        // @@protoc_insertion_point(builder_implements:Test)
17506        org.sonar.batch.protocol.output.BatchReport.TestOrBuilder {
17507      public static final com.google.protobuf.Descriptors.Descriptor
17508          getDescriptor() {
17509        return org.sonar.batch.protocol.output.BatchReport.internal_static_Test_descriptor;
17510      }
17511
17512      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
17513          internalGetFieldAccessorTable() {
17514        return org.sonar.batch.protocol.output.BatchReport.internal_static_Test_fieldAccessorTable
17515            .ensureFieldAccessorsInitialized(
17516                org.sonar.batch.protocol.output.BatchReport.Test.class, org.sonar.batch.protocol.output.BatchReport.Test.Builder.class);
17517      }
17518
17519      // Construct using org.sonar.batch.protocol.output.BatchReport.Test.newBuilder()
17520      private Builder() {
17521        maybeForceBuilderInitialization();
17522      }
17523
17524      private Builder(
17525          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
17526        super(parent);
17527        maybeForceBuilderInitialization();
17528      }
17529      private void maybeForceBuilderInitialization() {
17530        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
17531        }
17532      }
17533      public Builder clear() {
17534        super.clear();
17535        name_ = "";
17536        bitField0_ = (bitField0_ & ~0x00000001);
17537        status_ = 1;
17538        bitField0_ = (bitField0_ & ~0x00000002);
17539        durationInMs_ = 0L;
17540        bitField0_ = (bitField0_ & ~0x00000004);
17541        stacktrace_ = "";
17542        bitField0_ = (bitField0_ & ~0x00000008);
17543        msg_ = "";
17544        bitField0_ = (bitField0_ & ~0x00000010);
17545        return this;
17546      }
17547
17548      public com.google.protobuf.Descriptors.Descriptor
17549          getDescriptorForType() {
17550        return org.sonar.batch.protocol.output.BatchReport.internal_static_Test_descriptor;
17551      }
17552
17553      public org.sonar.batch.protocol.output.BatchReport.Test getDefaultInstanceForType() {
17554        return org.sonar.batch.protocol.output.BatchReport.Test.getDefaultInstance();
17555      }
17556
17557      public org.sonar.batch.protocol.output.BatchReport.Test build() {
17558        org.sonar.batch.protocol.output.BatchReport.Test result = buildPartial();
17559        if (!result.isInitialized()) {
17560          throw newUninitializedMessageException(result);
17561        }
17562        return result;
17563      }
17564
17565      public org.sonar.batch.protocol.output.BatchReport.Test buildPartial() {
17566        org.sonar.batch.protocol.output.BatchReport.Test result = new org.sonar.batch.protocol.output.BatchReport.Test(this);
17567        int from_bitField0_ = bitField0_;
17568        int to_bitField0_ = 0;
17569        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
17570          to_bitField0_ |= 0x00000001;
17571        }
17572        result.name_ = name_;
17573        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
17574          to_bitField0_ |= 0x00000002;
17575        }
17576        result.status_ = status_;
17577        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
17578          to_bitField0_ |= 0x00000004;
17579        }
17580        result.durationInMs_ = durationInMs_;
17581        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
17582          to_bitField0_ |= 0x00000008;
17583        }
17584        result.stacktrace_ = stacktrace_;
17585        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
17586          to_bitField0_ |= 0x00000010;
17587        }
17588        result.msg_ = msg_;
17589        result.bitField0_ = to_bitField0_;
17590        onBuilt();
17591        return result;
17592      }
17593
17594      public Builder mergeFrom(com.google.protobuf.Message other) {
17595        if (other instanceof org.sonar.batch.protocol.output.BatchReport.Test) {
17596          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.Test)other);
17597        } else {
17598          super.mergeFrom(other);
17599          return this;
17600        }
17601      }
17602
17603      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.Test other) {
17604        if (other == org.sonar.batch.protocol.output.BatchReport.Test.getDefaultInstance()) return this;
17605        if (other.hasName()) {
17606          bitField0_ |= 0x00000001;
17607          name_ = other.name_;
17608          onChanged();
17609        }
17610        if (other.hasStatus()) {
17611          setStatus(other.getStatus());
17612        }
17613        if (other.hasDurationInMs()) {
17614          setDurationInMs(other.getDurationInMs());
17615        }
17616        if (other.hasStacktrace()) {
17617          bitField0_ |= 0x00000008;
17618          stacktrace_ = other.stacktrace_;
17619          onChanged();
17620        }
17621        if (other.hasMsg()) {
17622          bitField0_ |= 0x00000010;
17623          msg_ = other.msg_;
17624          onChanged();
17625        }
17626        this.mergeUnknownFields(other.unknownFields);
17627        onChanged();
17628        return this;
17629      }
17630
17631      public final boolean isInitialized() {
17632        return true;
17633      }
17634
17635      public Builder mergeFrom(
17636          com.google.protobuf.CodedInputStream input,
17637          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17638          throws java.io.IOException {
17639        org.sonar.batch.protocol.output.BatchReport.Test parsedMessage = null;
17640        try {
17641          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
17642        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
17643          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.Test) e.getUnfinishedMessage();
17644          throw e;
17645        } finally {
17646          if (parsedMessage != null) {
17647            mergeFrom(parsedMessage);
17648          }
17649        }
17650        return this;
17651      }
17652      private int bitField0_;
17653
17654      private java.lang.Object name_ = "";
17655      /**
17656       * <code>optional string name = 1;</code>
17657       */
17658      public boolean hasName() {
17659        return ((bitField0_ & 0x00000001) == 0x00000001);
17660      }
17661      /**
17662       * <code>optional string name = 1;</code>
17663       */
17664      public java.lang.String getName() {
17665        java.lang.Object ref = name_;
17666        if (!(ref instanceof java.lang.String)) {
17667          com.google.protobuf.ByteString bs =
17668              (com.google.protobuf.ByteString) ref;
17669          java.lang.String s = bs.toStringUtf8();
17670          if (bs.isValidUtf8()) {
17671            name_ = s;
17672          }
17673          return s;
17674        } else {
17675          return (java.lang.String) ref;
17676        }
17677      }
17678      /**
17679       * <code>optional string name = 1;</code>
17680       */
17681      public com.google.protobuf.ByteString
17682          getNameBytes() {
17683        java.lang.Object ref = name_;
17684        if (ref instanceof String) {
17685          com.google.protobuf.ByteString b = 
17686              com.google.protobuf.ByteString.copyFromUtf8(
17687                  (java.lang.String) ref);
17688          name_ = b;
17689          return b;
17690        } else {
17691          return (com.google.protobuf.ByteString) ref;
17692        }
17693      }
17694      /**
17695       * <code>optional string name = 1;</code>
17696       */
17697      public Builder setName(
17698          java.lang.String value) {
17699        if (value == null) {
17700    throw new NullPointerException();
17701  }
17702  bitField0_ |= 0x00000001;
17703        name_ = value;
17704        onChanged();
17705        return this;
17706      }
17707      /**
17708       * <code>optional string name = 1;</code>
17709       */
17710      public Builder clearName() {
17711        bitField0_ = (bitField0_ & ~0x00000001);
17712        name_ = getDefaultInstance().getName();
17713        onChanged();
17714        return this;
17715      }
17716      /**
17717       * <code>optional string name = 1;</code>
17718       */
17719      public Builder setNameBytes(
17720          com.google.protobuf.ByteString value) {
17721        if (value == null) {
17722    throw new NullPointerException();
17723  }
17724  bitField0_ |= 0x00000001;
17725        name_ = value;
17726        onChanged();
17727        return this;
17728      }
17729
17730      private int status_ = 1;
17731      /**
17732       * <code>optional .TestStatus status = 2;</code>
17733       */
17734      public boolean hasStatus() {
17735        return ((bitField0_ & 0x00000002) == 0x00000002);
17736      }
17737      /**
17738       * <code>optional .TestStatus status = 2;</code>
17739       */
17740      public org.sonar.batch.protocol.Constants.TestStatus getStatus() {
17741        org.sonar.batch.protocol.Constants.TestStatus result = org.sonar.batch.protocol.Constants.TestStatus.valueOf(status_);
17742        return result == null ? org.sonar.batch.protocol.Constants.TestStatus.OK : result;
17743      }
17744      /**
17745       * <code>optional .TestStatus status = 2;</code>
17746       */
17747      public Builder setStatus(org.sonar.batch.protocol.Constants.TestStatus value) {
17748        if (value == null) {
17749          throw new NullPointerException();
17750        }
17751        bitField0_ |= 0x00000002;
17752        status_ = value.getNumber();
17753        onChanged();
17754        return this;
17755      }
17756      /**
17757       * <code>optional .TestStatus status = 2;</code>
17758       */
17759      public Builder clearStatus() {
17760        bitField0_ = (bitField0_ & ~0x00000002);
17761        status_ = 1;
17762        onChanged();
17763        return this;
17764      }
17765
17766      private long durationInMs_ ;
17767      /**
17768       * <code>optional int64 duration_in_ms = 3;</code>
17769       */
17770      public boolean hasDurationInMs() {
17771        return ((bitField0_ & 0x00000004) == 0x00000004);
17772      }
17773      /**
17774       * <code>optional int64 duration_in_ms = 3;</code>
17775       */
17776      public long getDurationInMs() {
17777        return durationInMs_;
17778      }
17779      /**
17780       * <code>optional int64 duration_in_ms = 3;</code>
17781       */
17782      public Builder setDurationInMs(long value) {
17783        bitField0_ |= 0x00000004;
17784        durationInMs_ = value;
17785        onChanged();
17786        return this;
17787      }
17788      /**
17789       * <code>optional int64 duration_in_ms = 3;</code>
17790       */
17791      public Builder clearDurationInMs() {
17792        bitField0_ = (bitField0_ & ~0x00000004);
17793        durationInMs_ = 0L;
17794        onChanged();
17795        return this;
17796      }
17797
17798      private java.lang.Object stacktrace_ = "";
17799      /**
17800       * <code>optional string stacktrace = 4;</code>
17801       */
17802      public boolean hasStacktrace() {
17803        return ((bitField0_ & 0x00000008) == 0x00000008);
17804      }
17805      /**
17806       * <code>optional string stacktrace = 4;</code>
17807       */
17808      public java.lang.String getStacktrace() {
17809        java.lang.Object ref = stacktrace_;
17810        if (!(ref instanceof java.lang.String)) {
17811          com.google.protobuf.ByteString bs =
17812              (com.google.protobuf.ByteString) ref;
17813          java.lang.String s = bs.toStringUtf8();
17814          if (bs.isValidUtf8()) {
17815            stacktrace_ = s;
17816          }
17817          return s;
17818        } else {
17819          return (java.lang.String) ref;
17820        }
17821      }
17822      /**
17823       * <code>optional string stacktrace = 4;</code>
17824       */
17825      public com.google.protobuf.ByteString
17826          getStacktraceBytes() {
17827        java.lang.Object ref = stacktrace_;
17828        if (ref instanceof String) {
17829          com.google.protobuf.ByteString b = 
17830              com.google.protobuf.ByteString.copyFromUtf8(
17831                  (java.lang.String) ref);
17832          stacktrace_ = b;
17833          return b;
17834        } else {
17835          return (com.google.protobuf.ByteString) ref;
17836        }
17837      }
17838      /**
17839       * <code>optional string stacktrace = 4;</code>
17840       */
17841      public Builder setStacktrace(
17842          java.lang.String value) {
17843        if (value == null) {
17844    throw new NullPointerException();
17845  }
17846  bitField0_ |= 0x00000008;
17847        stacktrace_ = value;
17848        onChanged();
17849        return this;
17850      }
17851      /**
17852       * <code>optional string stacktrace = 4;</code>
17853       */
17854      public Builder clearStacktrace() {
17855        bitField0_ = (bitField0_ & ~0x00000008);
17856        stacktrace_ = getDefaultInstance().getStacktrace();
17857        onChanged();
17858        return this;
17859      }
17860      /**
17861       * <code>optional string stacktrace = 4;</code>
17862       */
17863      public Builder setStacktraceBytes(
17864          com.google.protobuf.ByteString value) {
17865        if (value == null) {
17866    throw new NullPointerException();
17867  }
17868  bitField0_ |= 0x00000008;
17869        stacktrace_ = value;
17870        onChanged();
17871        return this;
17872      }
17873
17874      private java.lang.Object msg_ = "";
17875      /**
17876       * <code>optional string msg = 5;</code>
17877       */
17878      public boolean hasMsg() {
17879        return ((bitField0_ & 0x00000010) == 0x00000010);
17880      }
17881      /**
17882       * <code>optional string msg = 5;</code>
17883       */
17884      public java.lang.String getMsg() {
17885        java.lang.Object ref = msg_;
17886        if (!(ref instanceof java.lang.String)) {
17887          com.google.protobuf.ByteString bs =
17888              (com.google.protobuf.ByteString) ref;
17889          java.lang.String s = bs.toStringUtf8();
17890          if (bs.isValidUtf8()) {
17891            msg_ = s;
17892          }
17893          return s;
17894        } else {
17895          return (java.lang.String) ref;
17896        }
17897      }
17898      /**
17899       * <code>optional string msg = 5;</code>
17900       */
17901      public com.google.protobuf.ByteString
17902          getMsgBytes() {
17903        java.lang.Object ref = msg_;
17904        if (ref instanceof String) {
17905          com.google.protobuf.ByteString b = 
17906              com.google.protobuf.ByteString.copyFromUtf8(
17907                  (java.lang.String) ref);
17908          msg_ = b;
17909          return b;
17910        } else {
17911          return (com.google.protobuf.ByteString) ref;
17912        }
17913      }
17914      /**
17915       * <code>optional string msg = 5;</code>
17916       */
17917      public Builder setMsg(
17918          java.lang.String value) {
17919        if (value == null) {
17920    throw new NullPointerException();
17921  }
17922  bitField0_ |= 0x00000010;
17923        msg_ = value;
17924        onChanged();
17925        return this;
17926      }
17927      /**
17928       * <code>optional string msg = 5;</code>
17929       */
17930      public Builder clearMsg() {
17931        bitField0_ = (bitField0_ & ~0x00000010);
17932        msg_ = getDefaultInstance().getMsg();
17933        onChanged();
17934        return this;
17935      }
17936      /**
17937       * <code>optional string msg = 5;</code>
17938       */
17939      public Builder setMsgBytes(
17940          com.google.protobuf.ByteString value) {
17941        if (value == null) {
17942    throw new NullPointerException();
17943  }
17944  bitField0_ |= 0x00000010;
17945        msg_ = value;
17946        onChanged();
17947        return this;
17948      }
17949
17950      // @@protoc_insertion_point(builder_scope:Test)
17951    }
17952
17953    // @@protoc_insertion_point(class_scope:Test)
17954    private static final org.sonar.batch.protocol.output.BatchReport.Test DEFAULT_INSTANCE;
17955    static {
17956      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.Test();
17957    }
17958
17959    public static org.sonar.batch.protocol.output.BatchReport.Test getDefaultInstance() {
17960      return DEFAULT_INSTANCE;
17961    }
17962
17963    @java.lang.Deprecated public static final com.google.protobuf.Parser<Test>
17964        PARSER = new com.google.protobuf.AbstractParser<Test>() {
17965      public Test parsePartialFrom(
17966          com.google.protobuf.CodedInputStream input,
17967          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
17968          throws com.google.protobuf.InvalidProtocolBufferException {
17969        try {
17970          return new Test(input, extensionRegistry);
17971        } catch (RuntimeException e) {
17972          if (e.getCause() instanceof
17973              com.google.protobuf.InvalidProtocolBufferException) {
17974            throw (com.google.protobuf.InvalidProtocolBufferException)
17975                e.getCause();
17976          }
17977          throw e;
17978        }
17979      }
17980    };
17981
17982    public static com.google.protobuf.Parser<Test> parser() {
17983      return PARSER;
17984    }
17985
17986    @java.lang.Override
17987    public com.google.protobuf.Parser<Test> getParserForType() {
17988      return PARSER;
17989    }
17990
17991    public org.sonar.batch.protocol.output.BatchReport.Test getDefaultInstanceForType() {
17992      return DEFAULT_INSTANCE;
17993    }
17994
17995  }
17996
17997  public interface CoverageDetailOrBuilder extends
17998      // @@protoc_insertion_point(interface_extends:CoverageDetail)
17999      com.google.protobuf.MessageOrBuilder {
18000
18001    /**
18002     * <code>optional string test_name = 1;</code>
18003     */
18004    boolean hasTestName();
18005    /**
18006     * <code>optional string test_name = 1;</code>
18007     */
18008    java.lang.String getTestName();
18009    /**
18010     * <code>optional string test_name = 1;</code>
18011     */
18012    com.google.protobuf.ByteString
18013        getTestNameBytes();
18014
18015    /**
18016     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18017     */
18018    java.util.List<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile> 
18019        getCoveredFileList();
18020    /**
18021     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18022     */
18023    org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile getCoveredFile(int index);
18024    /**
18025     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18026     */
18027    int getCoveredFileCount();
18028    /**
18029     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18030     */
18031    java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder> 
18032        getCoveredFileOrBuilderList();
18033    /**
18034     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18035     */
18036    org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder getCoveredFileOrBuilder(
18037        int index);
18038  }
18039  /**
18040   * Protobuf type {@code CoverageDetail}
18041   */
18042  public  static final class CoverageDetail extends
18043      com.google.protobuf.GeneratedMessage implements
18044      // @@protoc_insertion_point(message_implements:CoverageDetail)
18045      CoverageDetailOrBuilder {
18046    // Use CoverageDetail.newBuilder() to construct.
18047    private CoverageDetail(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
18048      super(builder);
18049    }
18050    private CoverageDetail() {
18051      testName_ = "";
18052      coveredFile_ = java.util.Collections.emptyList();
18053    }
18054
18055    @java.lang.Override
18056    public final com.google.protobuf.UnknownFieldSet
18057    getUnknownFields() {
18058      return this.unknownFields;
18059    }
18060    private CoverageDetail(
18061        com.google.protobuf.CodedInputStream input,
18062        com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
18063      this();
18064      int mutable_bitField0_ = 0;
18065      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
18066          com.google.protobuf.UnknownFieldSet.newBuilder();
18067      try {
18068        boolean done = false;
18069        while (!done) {
18070          int tag = input.readTag();
18071          switch (tag) {
18072            case 0:
18073              done = true;
18074              break;
18075            default: {
18076              if (!parseUnknownField(input, unknownFields,
18077                                     extensionRegistry, tag)) {
18078                done = true;
18079              }
18080              break;
18081            }
18082            case 10: {
18083              com.google.protobuf.ByteString bs = input.readBytes();
18084              bitField0_ |= 0x00000001;
18085              testName_ = bs;
18086              break;
18087            }
18088            case 18: {
18089              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
18090                coveredFile_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile>();
18091                mutable_bitField0_ |= 0x00000002;
18092              }
18093              coveredFile_.add(input.readMessage(org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.parser(), extensionRegistry));
18094              break;
18095            }
18096          }
18097        }
18098      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
18099        throw new RuntimeException(e.setUnfinishedMessage(this));
18100      } catch (java.io.IOException e) {
18101        throw new RuntimeException(
18102            new com.google.protobuf.InvalidProtocolBufferException(
18103                e.getMessage()).setUnfinishedMessage(this));
18104      } finally {
18105        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
18106          coveredFile_ = java.util.Collections.unmodifiableList(coveredFile_);
18107        }
18108        this.unknownFields = unknownFields.build();
18109        makeExtensionsImmutable();
18110      }
18111    }
18112    public static final com.google.protobuf.Descriptors.Descriptor
18113        getDescriptor() {
18114      return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_descriptor;
18115    }
18116
18117    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
18118        internalGetFieldAccessorTable() {
18119      return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_fieldAccessorTable
18120          .ensureFieldAccessorsInitialized(
18121              org.sonar.batch.protocol.output.BatchReport.CoverageDetail.class, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.Builder.class);
18122    }
18123
18124    public interface CoveredFileOrBuilder extends
18125        // @@protoc_insertion_point(interface_extends:CoverageDetail.CoveredFile)
18126        com.google.protobuf.MessageOrBuilder {
18127
18128      /**
18129       * <code>optional int32 file_ref = 1;</code>
18130       */
18131      boolean hasFileRef();
18132      /**
18133       * <code>optional int32 file_ref = 1;</code>
18134       */
18135      int getFileRef();
18136
18137      /**
18138       * <code>repeated int32 covered_line = 2 [packed = true];</code>
18139       */
18140      java.util.List<java.lang.Integer> getCoveredLineList();
18141      /**
18142       * <code>repeated int32 covered_line = 2 [packed = true];</code>
18143       */
18144      int getCoveredLineCount();
18145      /**
18146       * <code>repeated int32 covered_line = 2 [packed = true];</code>
18147       */
18148      int getCoveredLine(int index);
18149    }
18150    /**
18151     * Protobuf type {@code CoverageDetail.CoveredFile}
18152     */
18153    public  static final class CoveredFile extends
18154        com.google.protobuf.GeneratedMessage implements
18155        // @@protoc_insertion_point(message_implements:CoverageDetail.CoveredFile)
18156        CoveredFileOrBuilder {
18157      // Use CoveredFile.newBuilder() to construct.
18158      private CoveredFile(com.google.protobuf.GeneratedMessage.Builder<?> builder) {
18159        super(builder);
18160      }
18161      private CoveredFile() {
18162        fileRef_ = 0;
18163        coveredLine_ = java.util.Collections.emptyList();
18164      }
18165
18166      @java.lang.Override
18167      public final com.google.protobuf.UnknownFieldSet
18168      getUnknownFields() {
18169        return this.unknownFields;
18170      }
18171      private CoveredFile(
18172          com.google.protobuf.CodedInputStream input,
18173          com.google.protobuf.ExtensionRegistryLite extensionRegistry) {
18174        this();
18175        int mutable_bitField0_ = 0;
18176        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
18177            com.google.protobuf.UnknownFieldSet.newBuilder();
18178        try {
18179          boolean done = false;
18180          while (!done) {
18181            int tag = input.readTag();
18182            switch (tag) {
18183              case 0:
18184                done = true;
18185                break;
18186              default: {
18187                if (!parseUnknownField(input, unknownFields,
18188                                       extensionRegistry, tag)) {
18189                  done = true;
18190                }
18191                break;
18192              }
18193              case 8: {
18194                bitField0_ |= 0x00000001;
18195                fileRef_ = input.readInt32();
18196                break;
18197              }
18198              case 16: {
18199                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
18200                  coveredLine_ = new java.util.ArrayList<java.lang.Integer>();
18201                  mutable_bitField0_ |= 0x00000002;
18202                }
18203                coveredLine_.add(input.readInt32());
18204                break;
18205              }
18206              case 18: {
18207                int length = input.readRawVarint32();
18208                int limit = input.pushLimit(length);
18209                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002) && input.getBytesUntilLimit() > 0) {
18210                  coveredLine_ = new java.util.ArrayList<java.lang.Integer>();
18211                  mutable_bitField0_ |= 0x00000002;
18212                }
18213                while (input.getBytesUntilLimit() > 0) {
18214                  coveredLine_.add(input.readInt32());
18215                }
18216                input.popLimit(limit);
18217                break;
18218              }
18219            }
18220          }
18221        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
18222          throw new RuntimeException(e.setUnfinishedMessage(this));
18223        } catch (java.io.IOException e) {
18224          throw new RuntimeException(
18225              new com.google.protobuf.InvalidProtocolBufferException(
18226                  e.getMessage()).setUnfinishedMessage(this));
18227        } finally {
18228          if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
18229            coveredLine_ = java.util.Collections.unmodifiableList(coveredLine_);
18230          }
18231          this.unknownFields = unknownFields.build();
18232          makeExtensionsImmutable();
18233        }
18234      }
18235      public static final com.google.protobuf.Descriptors.Descriptor
18236          getDescriptor() {
18237        return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_CoveredFile_descriptor;
18238      }
18239
18240      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
18241          internalGetFieldAccessorTable() {
18242        return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_CoveredFile_fieldAccessorTable
18243            .ensureFieldAccessorsInitialized(
18244                org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.class, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder.class);
18245      }
18246
18247      private int bitField0_;
18248      public static final int FILE_REF_FIELD_NUMBER = 1;
18249      private int fileRef_;
18250      /**
18251       * <code>optional int32 file_ref = 1;</code>
18252       */
18253      public boolean hasFileRef() {
18254        return ((bitField0_ & 0x00000001) == 0x00000001);
18255      }
18256      /**
18257       * <code>optional int32 file_ref = 1;</code>
18258       */
18259      public int getFileRef() {
18260        return fileRef_;
18261      }
18262
18263      public static final int COVERED_LINE_FIELD_NUMBER = 2;
18264      private java.util.List<java.lang.Integer> coveredLine_;
18265      /**
18266       * <code>repeated int32 covered_line = 2 [packed = true];</code>
18267       */
18268      public java.util.List<java.lang.Integer>
18269          getCoveredLineList() {
18270        return coveredLine_;
18271      }
18272      /**
18273       * <code>repeated int32 covered_line = 2 [packed = true];</code>
18274       */
18275      public int getCoveredLineCount() {
18276        return coveredLine_.size();
18277      }
18278      /**
18279       * <code>repeated int32 covered_line = 2 [packed = true];</code>
18280       */
18281      public int getCoveredLine(int index) {
18282        return coveredLine_.get(index);
18283      }
18284      private int coveredLineMemoizedSerializedSize = -1;
18285
18286      private byte memoizedIsInitialized = -1;
18287      public final boolean isInitialized() {
18288        byte isInitialized = memoizedIsInitialized;
18289        if (isInitialized == 1) return true;
18290        if (isInitialized == 0) return false;
18291
18292        memoizedIsInitialized = 1;
18293        return true;
18294      }
18295
18296      public void writeTo(com.google.protobuf.CodedOutputStream output)
18297                          throws java.io.IOException {
18298        getSerializedSize();
18299        if (((bitField0_ & 0x00000001) == 0x00000001)) {
18300          output.writeInt32(1, fileRef_);
18301        }
18302        if (getCoveredLineList().size() > 0) {
18303          output.writeRawVarint32(18);
18304          output.writeRawVarint32(coveredLineMemoizedSerializedSize);
18305        }
18306        for (int i = 0; i < coveredLine_.size(); i++) {
18307          output.writeInt32NoTag(coveredLine_.get(i));
18308        }
18309        unknownFields.writeTo(output);
18310      }
18311
18312      public int getSerializedSize() {
18313        int size = memoizedSize;
18314        if (size != -1) return size;
18315
18316        size = 0;
18317        if (((bitField0_ & 0x00000001) == 0x00000001)) {
18318          size += com.google.protobuf.CodedOutputStream
18319            .computeInt32Size(1, fileRef_);
18320        }
18321        {
18322          int dataSize = 0;
18323          for (int i = 0; i < coveredLine_.size(); i++) {
18324            dataSize += com.google.protobuf.CodedOutputStream
18325              .computeInt32SizeNoTag(coveredLine_.get(i));
18326          }
18327          size += dataSize;
18328          if (!getCoveredLineList().isEmpty()) {
18329            size += 1;
18330            size += com.google.protobuf.CodedOutputStream
18331                .computeInt32SizeNoTag(dataSize);
18332          }
18333          coveredLineMemoizedSerializedSize = dataSize;
18334        }
18335        size += unknownFields.getSerializedSize();
18336        memoizedSize = size;
18337        return size;
18338      }
18339
18340      private static final long serialVersionUID = 0L;
18341      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(
18342          com.google.protobuf.ByteString data)
18343          throws com.google.protobuf.InvalidProtocolBufferException {
18344        return PARSER.parseFrom(data);
18345      }
18346      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(
18347          com.google.protobuf.ByteString data,
18348          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18349          throws com.google.protobuf.InvalidProtocolBufferException {
18350        return PARSER.parseFrom(data, extensionRegistry);
18351      }
18352      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(byte[] data)
18353          throws com.google.protobuf.InvalidProtocolBufferException {
18354        return PARSER.parseFrom(data);
18355      }
18356      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(
18357          byte[] data,
18358          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18359          throws com.google.protobuf.InvalidProtocolBufferException {
18360        return PARSER.parseFrom(data, extensionRegistry);
18361      }
18362      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(java.io.InputStream input)
18363          throws java.io.IOException {
18364        return PARSER.parseFrom(input);
18365      }
18366      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(
18367          java.io.InputStream input,
18368          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18369          throws java.io.IOException {
18370        return PARSER.parseFrom(input, extensionRegistry);
18371      }
18372      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseDelimitedFrom(java.io.InputStream input)
18373          throws java.io.IOException {
18374        return PARSER.parseDelimitedFrom(input);
18375      }
18376      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseDelimitedFrom(
18377          java.io.InputStream input,
18378          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18379          throws java.io.IOException {
18380        return PARSER.parseDelimitedFrom(input, extensionRegistry);
18381      }
18382      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(
18383          com.google.protobuf.CodedInputStream input)
18384          throws java.io.IOException {
18385        return PARSER.parseFrom(input);
18386      }
18387      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parseFrom(
18388          com.google.protobuf.CodedInputStream input,
18389          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18390          throws java.io.IOException {
18391        return PARSER.parseFrom(input, extensionRegistry);
18392      }
18393
18394      public Builder newBuilderForType() { return newBuilder(); }
18395      public static Builder newBuilder() {
18396        return DEFAULT_INSTANCE.toBuilder();
18397      }
18398      public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile prototype) {
18399        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
18400      }
18401      public Builder toBuilder() {
18402        return this == DEFAULT_INSTANCE
18403            ? new Builder() : new Builder().mergeFrom(this);
18404      }
18405
18406      @java.lang.Override
18407      protected Builder newBuilderForType(
18408          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
18409        Builder builder = new Builder(parent);
18410        return builder;
18411      }
18412      /**
18413       * Protobuf type {@code CoverageDetail.CoveredFile}
18414       */
18415      public static final class Builder extends
18416          com.google.protobuf.GeneratedMessage.Builder<Builder> implements
18417          // @@protoc_insertion_point(builder_implements:CoverageDetail.CoveredFile)
18418          org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder {
18419        public static final com.google.protobuf.Descriptors.Descriptor
18420            getDescriptor() {
18421          return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_CoveredFile_descriptor;
18422        }
18423
18424        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
18425            internalGetFieldAccessorTable() {
18426          return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_CoveredFile_fieldAccessorTable
18427              .ensureFieldAccessorsInitialized(
18428                  org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.class, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder.class);
18429        }
18430
18431        // Construct using org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.newBuilder()
18432        private Builder() {
18433          maybeForceBuilderInitialization();
18434        }
18435
18436        private Builder(
18437            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
18438          super(parent);
18439          maybeForceBuilderInitialization();
18440        }
18441        private void maybeForceBuilderInitialization() {
18442          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
18443          }
18444        }
18445        public Builder clear() {
18446          super.clear();
18447          fileRef_ = 0;
18448          bitField0_ = (bitField0_ & ~0x00000001);
18449          coveredLine_ = java.util.Collections.emptyList();
18450          bitField0_ = (bitField0_ & ~0x00000002);
18451          return this;
18452        }
18453
18454        public com.google.protobuf.Descriptors.Descriptor
18455            getDescriptorForType() {
18456          return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_CoveredFile_descriptor;
18457        }
18458
18459        public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile getDefaultInstanceForType() {
18460          return org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.getDefaultInstance();
18461        }
18462
18463        public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile build() {
18464          org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile result = buildPartial();
18465          if (!result.isInitialized()) {
18466            throw newUninitializedMessageException(result);
18467          }
18468          return result;
18469        }
18470
18471        public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile buildPartial() {
18472          org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile result = new org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile(this);
18473          int from_bitField0_ = bitField0_;
18474          int to_bitField0_ = 0;
18475          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
18476            to_bitField0_ |= 0x00000001;
18477          }
18478          result.fileRef_ = fileRef_;
18479          if (((bitField0_ & 0x00000002) == 0x00000002)) {
18480            coveredLine_ = java.util.Collections.unmodifiableList(coveredLine_);
18481            bitField0_ = (bitField0_ & ~0x00000002);
18482          }
18483          result.coveredLine_ = coveredLine_;
18484          result.bitField0_ = to_bitField0_;
18485          onBuilt();
18486          return result;
18487        }
18488
18489        public Builder mergeFrom(com.google.protobuf.Message other) {
18490          if (other instanceof org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile) {
18491            return mergeFrom((org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile)other);
18492          } else {
18493            super.mergeFrom(other);
18494            return this;
18495          }
18496        }
18497
18498        public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile other) {
18499          if (other == org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.getDefaultInstance()) return this;
18500          if (other.hasFileRef()) {
18501            setFileRef(other.getFileRef());
18502          }
18503          if (!other.coveredLine_.isEmpty()) {
18504            if (coveredLine_.isEmpty()) {
18505              coveredLine_ = other.coveredLine_;
18506              bitField0_ = (bitField0_ & ~0x00000002);
18507            } else {
18508              ensureCoveredLineIsMutable();
18509              coveredLine_.addAll(other.coveredLine_);
18510            }
18511            onChanged();
18512          }
18513          this.mergeUnknownFields(other.unknownFields);
18514          onChanged();
18515          return this;
18516        }
18517
18518        public final boolean isInitialized() {
18519          return true;
18520        }
18521
18522        public Builder mergeFrom(
18523            com.google.protobuf.CodedInputStream input,
18524            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18525            throws java.io.IOException {
18526          org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile parsedMessage = null;
18527          try {
18528            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
18529          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
18530            parsedMessage = (org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile) e.getUnfinishedMessage();
18531            throw e;
18532          } finally {
18533            if (parsedMessage != null) {
18534              mergeFrom(parsedMessage);
18535            }
18536          }
18537          return this;
18538        }
18539        private int bitField0_;
18540
18541        private int fileRef_ ;
18542        /**
18543         * <code>optional int32 file_ref = 1;</code>
18544         */
18545        public boolean hasFileRef() {
18546          return ((bitField0_ & 0x00000001) == 0x00000001);
18547        }
18548        /**
18549         * <code>optional int32 file_ref = 1;</code>
18550         */
18551        public int getFileRef() {
18552          return fileRef_;
18553        }
18554        /**
18555         * <code>optional int32 file_ref = 1;</code>
18556         */
18557        public Builder setFileRef(int value) {
18558          bitField0_ |= 0x00000001;
18559          fileRef_ = value;
18560          onChanged();
18561          return this;
18562        }
18563        /**
18564         * <code>optional int32 file_ref = 1;</code>
18565         */
18566        public Builder clearFileRef() {
18567          bitField0_ = (bitField0_ & ~0x00000001);
18568          fileRef_ = 0;
18569          onChanged();
18570          return this;
18571        }
18572
18573        private java.util.List<java.lang.Integer> coveredLine_ = java.util.Collections.emptyList();
18574        private void ensureCoveredLineIsMutable() {
18575          if (!((bitField0_ & 0x00000002) == 0x00000002)) {
18576            coveredLine_ = new java.util.ArrayList<java.lang.Integer>(coveredLine_);
18577            bitField0_ |= 0x00000002;
18578           }
18579        }
18580        /**
18581         * <code>repeated int32 covered_line = 2 [packed = true];</code>
18582         */
18583        public java.util.List<java.lang.Integer>
18584            getCoveredLineList() {
18585          return java.util.Collections.unmodifiableList(coveredLine_);
18586        }
18587        /**
18588         * <code>repeated int32 covered_line = 2 [packed = true];</code>
18589         */
18590        public int getCoveredLineCount() {
18591          return coveredLine_.size();
18592        }
18593        /**
18594         * <code>repeated int32 covered_line = 2 [packed = true];</code>
18595         */
18596        public int getCoveredLine(int index) {
18597          return coveredLine_.get(index);
18598        }
18599        /**
18600         * <code>repeated int32 covered_line = 2 [packed = true];</code>
18601         */
18602        public Builder setCoveredLine(
18603            int index, int value) {
18604          ensureCoveredLineIsMutable();
18605          coveredLine_.set(index, value);
18606          onChanged();
18607          return this;
18608        }
18609        /**
18610         * <code>repeated int32 covered_line = 2 [packed = true];</code>
18611         */
18612        public Builder addCoveredLine(int value) {
18613          ensureCoveredLineIsMutable();
18614          coveredLine_.add(value);
18615          onChanged();
18616          return this;
18617        }
18618        /**
18619         * <code>repeated int32 covered_line = 2 [packed = true];</code>
18620         */
18621        public Builder addAllCoveredLine(
18622            java.lang.Iterable<? extends java.lang.Integer> values) {
18623          ensureCoveredLineIsMutable();
18624          com.google.protobuf.AbstractMessageLite.Builder.addAll(
18625              values, coveredLine_);
18626          onChanged();
18627          return this;
18628        }
18629        /**
18630         * <code>repeated int32 covered_line = 2 [packed = true];</code>
18631         */
18632        public Builder clearCoveredLine() {
18633          coveredLine_ = java.util.Collections.emptyList();
18634          bitField0_ = (bitField0_ & ~0x00000002);
18635          onChanged();
18636          return this;
18637        }
18638
18639        // @@protoc_insertion_point(builder_scope:CoverageDetail.CoveredFile)
18640      }
18641
18642      // @@protoc_insertion_point(class_scope:CoverageDetail.CoveredFile)
18643      private static final org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile DEFAULT_INSTANCE;
18644      static {
18645        DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile();
18646      }
18647
18648      public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile getDefaultInstance() {
18649        return DEFAULT_INSTANCE;
18650      }
18651
18652      @java.lang.Deprecated public static final com.google.protobuf.Parser<CoveredFile>
18653          PARSER = new com.google.protobuf.AbstractParser<CoveredFile>() {
18654        public CoveredFile parsePartialFrom(
18655            com.google.protobuf.CodedInputStream input,
18656            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18657            throws com.google.protobuf.InvalidProtocolBufferException {
18658          try {
18659            return new CoveredFile(input, extensionRegistry);
18660          } catch (RuntimeException e) {
18661            if (e.getCause() instanceof
18662                com.google.protobuf.InvalidProtocolBufferException) {
18663              throw (com.google.protobuf.InvalidProtocolBufferException)
18664                  e.getCause();
18665            }
18666            throw e;
18667          }
18668        }
18669      };
18670
18671      public static com.google.protobuf.Parser<CoveredFile> parser() {
18672        return PARSER;
18673      }
18674
18675      @java.lang.Override
18676      public com.google.protobuf.Parser<CoveredFile> getParserForType() {
18677        return PARSER;
18678      }
18679
18680      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile getDefaultInstanceForType() {
18681        return DEFAULT_INSTANCE;
18682      }
18683
18684    }
18685
18686    private int bitField0_;
18687    public static final int TEST_NAME_FIELD_NUMBER = 1;
18688    private volatile java.lang.Object testName_;
18689    /**
18690     * <code>optional string test_name = 1;</code>
18691     */
18692    public boolean hasTestName() {
18693      return ((bitField0_ & 0x00000001) == 0x00000001);
18694    }
18695    /**
18696     * <code>optional string test_name = 1;</code>
18697     */
18698    public java.lang.String getTestName() {
18699      java.lang.Object ref = testName_;
18700      if (ref instanceof java.lang.String) {
18701        return (java.lang.String) ref;
18702      } else {
18703        com.google.protobuf.ByteString bs = 
18704            (com.google.protobuf.ByteString) ref;
18705        java.lang.String s = bs.toStringUtf8();
18706        if (bs.isValidUtf8()) {
18707          testName_ = s;
18708        }
18709        return s;
18710      }
18711    }
18712    /**
18713     * <code>optional string test_name = 1;</code>
18714     */
18715    public com.google.protobuf.ByteString
18716        getTestNameBytes() {
18717      java.lang.Object ref = testName_;
18718      if (ref instanceof java.lang.String) {
18719        com.google.protobuf.ByteString b = 
18720            com.google.protobuf.ByteString.copyFromUtf8(
18721                (java.lang.String) ref);
18722        testName_ = b;
18723        return b;
18724      } else {
18725        return (com.google.protobuf.ByteString) ref;
18726      }
18727    }
18728
18729    public static final int COVERED_FILE_FIELD_NUMBER = 2;
18730    private java.util.List<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile> coveredFile_;
18731    /**
18732     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18733     */
18734    public java.util.List<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile> getCoveredFileList() {
18735      return coveredFile_;
18736    }
18737    /**
18738     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18739     */
18740    public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder> 
18741        getCoveredFileOrBuilderList() {
18742      return coveredFile_;
18743    }
18744    /**
18745     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18746     */
18747    public int getCoveredFileCount() {
18748      return coveredFile_.size();
18749    }
18750    /**
18751     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18752     */
18753    public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile getCoveredFile(int index) {
18754      return coveredFile_.get(index);
18755    }
18756    /**
18757     * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
18758     */
18759    public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder getCoveredFileOrBuilder(
18760        int index) {
18761      return coveredFile_.get(index);
18762    }
18763
18764    private byte memoizedIsInitialized = -1;
18765    public final boolean isInitialized() {
18766      byte isInitialized = memoizedIsInitialized;
18767      if (isInitialized == 1) return true;
18768      if (isInitialized == 0) return false;
18769
18770      memoizedIsInitialized = 1;
18771      return true;
18772    }
18773
18774    public void writeTo(com.google.protobuf.CodedOutputStream output)
18775                        throws java.io.IOException {
18776      if (((bitField0_ & 0x00000001) == 0x00000001)) {
18777        com.google.protobuf.GeneratedMessage.writeString(output, 1, testName_);
18778      }
18779      for (int i = 0; i < coveredFile_.size(); i++) {
18780        output.writeMessage(2, coveredFile_.get(i));
18781      }
18782      unknownFields.writeTo(output);
18783    }
18784
18785    public int getSerializedSize() {
18786      int size = memoizedSize;
18787      if (size != -1) return size;
18788
18789      size = 0;
18790      if (((bitField0_ & 0x00000001) == 0x00000001)) {
18791        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, testName_);
18792      }
18793      for (int i = 0; i < coveredFile_.size(); i++) {
18794        size += com.google.protobuf.CodedOutputStream
18795          .computeMessageSize(2, coveredFile_.get(i));
18796      }
18797      size += unknownFields.getSerializedSize();
18798      memoizedSize = size;
18799      return size;
18800    }
18801
18802    private static final long serialVersionUID = 0L;
18803    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(
18804        com.google.protobuf.ByteString data)
18805        throws com.google.protobuf.InvalidProtocolBufferException {
18806      return PARSER.parseFrom(data);
18807    }
18808    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(
18809        com.google.protobuf.ByteString data,
18810        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18811        throws com.google.protobuf.InvalidProtocolBufferException {
18812      return PARSER.parseFrom(data, extensionRegistry);
18813    }
18814    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(byte[] data)
18815        throws com.google.protobuf.InvalidProtocolBufferException {
18816      return PARSER.parseFrom(data);
18817    }
18818    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(
18819        byte[] data,
18820        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18821        throws com.google.protobuf.InvalidProtocolBufferException {
18822      return PARSER.parseFrom(data, extensionRegistry);
18823    }
18824    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(java.io.InputStream input)
18825        throws java.io.IOException {
18826      return PARSER.parseFrom(input);
18827    }
18828    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(
18829        java.io.InputStream input,
18830        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18831        throws java.io.IOException {
18832      return PARSER.parseFrom(input, extensionRegistry);
18833    }
18834    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseDelimitedFrom(java.io.InputStream input)
18835        throws java.io.IOException {
18836      return PARSER.parseDelimitedFrom(input);
18837    }
18838    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseDelimitedFrom(
18839        java.io.InputStream input,
18840        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18841        throws java.io.IOException {
18842      return PARSER.parseDelimitedFrom(input, extensionRegistry);
18843    }
18844    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(
18845        com.google.protobuf.CodedInputStream input)
18846        throws java.io.IOException {
18847      return PARSER.parseFrom(input);
18848    }
18849    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail parseFrom(
18850        com.google.protobuf.CodedInputStream input,
18851        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
18852        throws java.io.IOException {
18853      return PARSER.parseFrom(input, extensionRegistry);
18854    }
18855
18856    public Builder newBuilderForType() { return newBuilder(); }
18857    public static Builder newBuilder() {
18858      return DEFAULT_INSTANCE.toBuilder();
18859    }
18860    public static Builder newBuilder(org.sonar.batch.protocol.output.BatchReport.CoverageDetail prototype) {
18861      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
18862    }
18863    public Builder toBuilder() {
18864      return this == DEFAULT_INSTANCE
18865          ? new Builder() : new Builder().mergeFrom(this);
18866    }
18867
18868    @java.lang.Override
18869    protected Builder newBuilderForType(
18870        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
18871      Builder builder = new Builder(parent);
18872      return builder;
18873    }
18874    /**
18875     * Protobuf type {@code CoverageDetail}
18876     */
18877    public static final class Builder extends
18878        com.google.protobuf.GeneratedMessage.Builder<Builder> implements
18879        // @@protoc_insertion_point(builder_implements:CoverageDetail)
18880        org.sonar.batch.protocol.output.BatchReport.CoverageDetailOrBuilder {
18881      public static final com.google.protobuf.Descriptors.Descriptor
18882          getDescriptor() {
18883        return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_descriptor;
18884      }
18885
18886      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
18887          internalGetFieldAccessorTable() {
18888        return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_fieldAccessorTable
18889            .ensureFieldAccessorsInitialized(
18890                org.sonar.batch.protocol.output.BatchReport.CoverageDetail.class, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.Builder.class);
18891      }
18892
18893      // Construct using org.sonar.batch.protocol.output.BatchReport.CoverageDetail.newBuilder()
18894      private Builder() {
18895        maybeForceBuilderInitialization();
18896      }
18897
18898      private Builder(
18899          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
18900        super(parent);
18901        maybeForceBuilderInitialization();
18902      }
18903      private void maybeForceBuilderInitialization() {
18904        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
18905          getCoveredFileFieldBuilder();
18906        }
18907      }
18908      public Builder clear() {
18909        super.clear();
18910        testName_ = "";
18911        bitField0_ = (bitField0_ & ~0x00000001);
18912        if (coveredFileBuilder_ == null) {
18913          coveredFile_ = java.util.Collections.emptyList();
18914          bitField0_ = (bitField0_ & ~0x00000002);
18915        } else {
18916          coveredFileBuilder_.clear();
18917        }
18918        return this;
18919      }
18920
18921      public com.google.protobuf.Descriptors.Descriptor
18922          getDescriptorForType() {
18923        return org.sonar.batch.protocol.output.BatchReport.internal_static_CoverageDetail_descriptor;
18924      }
18925
18926      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail getDefaultInstanceForType() {
18927        return org.sonar.batch.protocol.output.BatchReport.CoverageDetail.getDefaultInstance();
18928      }
18929
18930      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail build() {
18931        org.sonar.batch.protocol.output.BatchReport.CoverageDetail result = buildPartial();
18932        if (!result.isInitialized()) {
18933          throw newUninitializedMessageException(result);
18934        }
18935        return result;
18936      }
18937
18938      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail buildPartial() {
18939        org.sonar.batch.protocol.output.BatchReport.CoverageDetail result = new org.sonar.batch.protocol.output.BatchReport.CoverageDetail(this);
18940        int from_bitField0_ = bitField0_;
18941        int to_bitField0_ = 0;
18942        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
18943          to_bitField0_ |= 0x00000001;
18944        }
18945        result.testName_ = testName_;
18946        if (coveredFileBuilder_ == null) {
18947          if (((bitField0_ & 0x00000002) == 0x00000002)) {
18948            coveredFile_ = java.util.Collections.unmodifiableList(coveredFile_);
18949            bitField0_ = (bitField0_ & ~0x00000002);
18950          }
18951          result.coveredFile_ = coveredFile_;
18952        } else {
18953          result.coveredFile_ = coveredFileBuilder_.build();
18954        }
18955        result.bitField0_ = to_bitField0_;
18956        onBuilt();
18957        return result;
18958      }
18959
18960      public Builder mergeFrom(com.google.protobuf.Message other) {
18961        if (other instanceof org.sonar.batch.protocol.output.BatchReport.CoverageDetail) {
18962          return mergeFrom((org.sonar.batch.protocol.output.BatchReport.CoverageDetail)other);
18963        } else {
18964          super.mergeFrom(other);
18965          return this;
18966        }
18967      }
18968
18969      public Builder mergeFrom(org.sonar.batch.protocol.output.BatchReport.CoverageDetail other) {
18970        if (other == org.sonar.batch.protocol.output.BatchReport.CoverageDetail.getDefaultInstance()) return this;
18971        if (other.hasTestName()) {
18972          bitField0_ |= 0x00000001;
18973          testName_ = other.testName_;
18974          onChanged();
18975        }
18976        if (coveredFileBuilder_ == null) {
18977          if (!other.coveredFile_.isEmpty()) {
18978            if (coveredFile_.isEmpty()) {
18979              coveredFile_ = other.coveredFile_;
18980              bitField0_ = (bitField0_ & ~0x00000002);
18981            } else {
18982              ensureCoveredFileIsMutable();
18983              coveredFile_.addAll(other.coveredFile_);
18984            }
18985            onChanged();
18986          }
18987        } else {
18988          if (!other.coveredFile_.isEmpty()) {
18989            if (coveredFileBuilder_.isEmpty()) {
18990              coveredFileBuilder_.dispose();
18991              coveredFileBuilder_ = null;
18992              coveredFile_ = other.coveredFile_;
18993              bitField0_ = (bitField0_ & ~0x00000002);
18994              coveredFileBuilder_ = 
18995                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
18996                   getCoveredFileFieldBuilder() : null;
18997            } else {
18998              coveredFileBuilder_.addAllMessages(other.coveredFile_);
18999            }
19000          }
19001        }
19002        this.mergeUnknownFields(other.unknownFields);
19003        onChanged();
19004        return this;
19005      }
19006
19007      public final boolean isInitialized() {
19008        return true;
19009      }
19010
19011      public Builder mergeFrom(
19012          com.google.protobuf.CodedInputStream input,
19013          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
19014          throws java.io.IOException {
19015        org.sonar.batch.protocol.output.BatchReport.CoverageDetail parsedMessage = null;
19016        try {
19017          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
19018        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
19019          parsedMessage = (org.sonar.batch.protocol.output.BatchReport.CoverageDetail) e.getUnfinishedMessage();
19020          throw e;
19021        } finally {
19022          if (parsedMessage != null) {
19023            mergeFrom(parsedMessage);
19024          }
19025        }
19026        return this;
19027      }
19028      private int bitField0_;
19029
19030      private java.lang.Object testName_ = "";
19031      /**
19032       * <code>optional string test_name = 1;</code>
19033       */
19034      public boolean hasTestName() {
19035        return ((bitField0_ & 0x00000001) == 0x00000001);
19036      }
19037      /**
19038       * <code>optional string test_name = 1;</code>
19039       */
19040      public java.lang.String getTestName() {
19041        java.lang.Object ref = testName_;
19042        if (!(ref instanceof java.lang.String)) {
19043          com.google.protobuf.ByteString bs =
19044              (com.google.protobuf.ByteString) ref;
19045          java.lang.String s = bs.toStringUtf8();
19046          if (bs.isValidUtf8()) {
19047            testName_ = s;
19048          }
19049          return s;
19050        } else {
19051          return (java.lang.String) ref;
19052        }
19053      }
19054      /**
19055       * <code>optional string test_name = 1;</code>
19056       */
19057      public com.google.protobuf.ByteString
19058          getTestNameBytes() {
19059        java.lang.Object ref = testName_;
19060        if (ref instanceof String) {
19061          com.google.protobuf.ByteString b = 
19062              com.google.protobuf.ByteString.copyFromUtf8(
19063                  (java.lang.String) ref);
19064          testName_ = b;
19065          return b;
19066        } else {
19067          return (com.google.protobuf.ByteString) ref;
19068        }
19069      }
19070      /**
19071       * <code>optional string test_name = 1;</code>
19072       */
19073      public Builder setTestName(
19074          java.lang.String value) {
19075        if (value == null) {
19076    throw new NullPointerException();
19077  }
19078  bitField0_ |= 0x00000001;
19079        testName_ = value;
19080        onChanged();
19081        return this;
19082      }
19083      /**
19084       * <code>optional string test_name = 1;</code>
19085       */
19086      public Builder clearTestName() {
19087        bitField0_ = (bitField0_ & ~0x00000001);
19088        testName_ = getDefaultInstance().getTestName();
19089        onChanged();
19090        return this;
19091      }
19092      /**
19093       * <code>optional string test_name = 1;</code>
19094       */
19095      public Builder setTestNameBytes(
19096          com.google.protobuf.ByteString value) {
19097        if (value == null) {
19098    throw new NullPointerException();
19099  }
19100  bitField0_ |= 0x00000001;
19101        testName_ = value;
19102        onChanged();
19103        return this;
19104      }
19105
19106      private java.util.List<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile> coveredFile_ =
19107        java.util.Collections.emptyList();
19108      private void ensureCoveredFileIsMutable() {
19109        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
19110          coveredFile_ = new java.util.ArrayList<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile>(coveredFile_);
19111          bitField0_ |= 0x00000002;
19112         }
19113      }
19114
19115      private com.google.protobuf.RepeatedFieldBuilder<
19116          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_;
19117
19118      /**
19119       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19120       */
19121      public java.util.List<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile> getCoveredFileList() {
19122        if (coveredFileBuilder_ == null) {
19123          return java.util.Collections.unmodifiableList(coveredFile_);
19124        } else {
19125          return coveredFileBuilder_.getMessageList();
19126        }
19127      }
19128      /**
19129       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19130       */
19131      public int getCoveredFileCount() {
19132        if (coveredFileBuilder_ == null) {
19133          return coveredFile_.size();
19134        } else {
19135          return coveredFileBuilder_.getCount();
19136        }
19137      }
19138      /**
19139       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19140       */
19141      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile getCoveredFile(int index) {
19142        if (coveredFileBuilder_ == null) {
19143          return coveredFile_.get(index);
19144        } else {
19145          return coveredFileBuilder_.getMessage(index);
19146        }
19147      }
19148      /**
19149       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19150       */
19151      public Builder setCoveredFile(
19152          int index, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile value) {
19153        if (coveredFileBuilder_ == null) {
19154          if (value == null) {
19155            throw new NullPointerException();
19156          }
19157          ensureCoveredFileIsMutable();
19158          coveredFile_.set(index, value);
19159          onChanged();
19160        } else {
19161          coveredFileBuilder_.setMessage(index, value);
19162        }
19163        return this;
19164      }
19165      /**
19166       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19167       */
19168      public Builder setCoveredFile(
19169          int index, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder builderForValue) {
19170        if (coveredFileBuilder_ == null) {
19171          ensureCoveredFileIsMutable();
19172          coveredFile_.set(index, builderForValue.build());
19173          onChanged();
19174        } else {
19175          coveredFileBuilder_.setMessage(index, builderForValue.build());
19176        }
19177        return this;
19178      }
19179      /**
19180       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19181       */
19182      public Builder addCoveredFile(org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile value) {
19183        if (coveredFileBuilder_ == null) {
19184          if (value == null) {
19185            throw new NullPointerException();
19186          }
19187          ensureCoveredFileIsMutable();
19188          coveredFile_.add(value);
19189          onChanged();
19190        } else {
19191          coveredFileBuilder_.addMessage(value);
19192        }
19193        return this;
19194      }
19195      /**
19196       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19197       */
19198      public Builder addCoveredFile(
19199          int index, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile value) {
19200        if (coveredFileBuilder_ == null) {
19201          if (value == null) {
19202            throw new NullPointerException();
19203          }
19204          ensureCoveredFileIsMutable();
19205          coveredFile_.add(index, value);
19206          onChanged();
19207        } else {
19208          coveredFileBuilder_.addMessage(index, value);
19209        }
19210        return this;
19211      }
19212      /**
19213       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19214       */
19215      public Builder addCoveredFile(
19216          org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder builderForValue) {
19217        if (coveredFileBuilder_ == null) {
19218          ensureCoveredFileIsMutable();
19219          coveredFile_.add(builderForValue.build());
19220          onChanged();
19221        } else {
19222          coveredFileBuilder_.addMessage(builderForValue.build());
19223        }
19224        return this;
19225      }
19226      /**
19227       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19228       */
19229      public Builder addCoveredFile(
19230          int index, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder builderForValue) {
19231        if (coveredFileBuilder_ == null) {
19232          ensureCoveredFileIsMutable();
19233          coveredFile_.add(index, builderForValue.build());
19234          onChanged();
19235        } else {
19236          coveredFileBuilder_.addMessage(index, builderForValue.build());
19237        }
19238        return this;
19239      }
19240      /**
19241       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19242       */
19243      public Builder addAllCoveredFile(
19244          java.lang.Iterable<? extends org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile> values) {
19245        if (coveredFileBuilder_ == null) {
19246          ensureCoveredFileIsMutable();
19247          com.google.protobuf.AbstractMessageLite.Builder.addAll(
19248              values, coveredFile_);
19249          onChanged();
19250        } else {
19251          coveredFileBuilder_.addAllMessages(values);
19252        }
19253        return this;
19254      }
19255      /**
19256       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19257       */
19258      public Builder clearCoveredFile() {
19259        if (coveredFileBuilder_ == null) {
19260          coveredFile_ = java.util.Collections.emptyList();
19261          bitField0_ = (bitField0_ & ~0x00000002);
19262          onChanged();
19263        } else {
19264          coveredFileBuilder_.clear();
19265        }
19266        return this;
19267      }
19268      /**
19269       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19270       */
19271      public Builder removeCoveredFile(int index) {
19272        if (coveredFileBuilder_ == null) {
19273          ensureCoveredFileIsMutable();
19274          coveredFile_.remove(index);
19275          onChanged();
19276        } else {
19277          coveredFileBuilder_.remove(index);
19278        }
19279        return this;
19280      }
19281      /**
19282       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19283       */
19284      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder getCoveredFileBuilder(
19285          int index) {
19286        return getCoveredFileFieldBuilder().getBuilder(index);
19287      }
19288      /**
19289       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19290       */
19291      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder getCoveredFileOrBuilder(
19292          int index) {
19293        if (coveredFileBuilder_ == null) {
19294          return coveredFile_.get(index);  } else {
19295          return coveredFileBuilder_.getMessageOrBuilder(index);
19296        }
19297      }
19298      /**
19299       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19300       */
19301      public java.util.List<? extends org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFileOrBuilder> 
19302           getCoveredFileOrBuilderList() {
19303        if (coveredFileBuilder_ != null) {
19304          return coveredFileBuilder_.getMessageOrBuilderList();
19305        } else {
19306          return java.util.Collections.unmodifiableList(coveredFile_);
19307        }
19308      }
19309      /**
19310       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19311       */
19312      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder addCoveredFileBuilder() {
19313        return getCoveredFileFieldBuilder().addBuilder(
19314            org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.getDefaultInstance());
19315      }
19316      /**
19317       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19318       */
19319      public org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder addCoveredFileBuilder(
19320          int index) {
19321        return getCoveredFileFieldBuilder().addBuilder(
19322            index, org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.getDefaultInstance());
19323      }
19324      /**
19325       * <code>repeated .CoverageDetail.CoveredFile covered_file = 2;</code>
19326       */
19327      public java.util.List<org.sonar.batch.protocol.output.BatchReport.CoverageDetail.CoveredFile.Builder> 
19328           getCoveredFileBuilderList() {
19329        return getCoveredFileFieldBuilder().getBuilderList();
19330      }
19331      private com.google.protobuf.RepeatedFieldBuilder<
19332          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> 
19333          getCoveredFileFieldBuilder() {
19334        if (coveredFileBuilder_ == null) {
19335          coveredFileBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
19336              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>(
19337                  coveredFile_,
19338                  ((bitField0_ & 0x00000002) == 0x00000002),
19339                  getParentForChildren(),
19340                  isClean());
19341          coveredFile_ = null;
19342        }
19343        return coveredFileBuilder_;
19344      }
19345
19346      // @@protoc_insertion_point(builder_scope:CoverageDetail)
19347    }
19348
19349    // @@protoc_insertion_point(class_scope:CoverageDetail)
19350    private static final org.sonar.batch.protocol.output.BatchReport.CoverageDetail DEFAULT_INSTANCE;
19351    static {
19352      DEFAULT_INSTANCE = new org.sonar.batch.protocol.output.BatchReport.CoverageDetail();
19353    }
19354
19355    public static org.sonar.batch.protocol.output.BatchReport.CoverageDetail getDefaultInstance() {
19356      return DEFAULT_INSTANCE;
19357    }
19358
19359    @java.lang.Deprecated public static final com.google.protobuf.Parser<CoverageDetail>
19360        PARSER = new com.google.protobuf.AbstractParser<CoverageDetail>() {
19361      public CoverageDetail parsePartialFrom(
19362          com.google.protobuf.CodedInputStream input,
19363          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
19364          throws com.google.protobuf.InvalidProtocolBufferException {
19365        try {
19366          return new CoverageDetail(input, extensionRegistry);
19367        } catch (RuntimeException e) {
19368          if (e.getCause() instanceof
19369              com.google.protobuf.InvalidProtocolBufferException) {
19370            throw (com.google.protobuf.InvalidProtocolBufferException)
19371                e.getCause();
19372          }
19373          throw e;
19374        }
19375      }
19376    };
19377
19378    public static com.google.protobuf.Parser<CoverageDetail> parser() {
19379      return PARSER;
19380    }
19381
19382    @java.lang.Override
19383    public com.google.protobuf.Parser<CoverageDetail> getParserForType() {
19384      return PARSER;
19385    }
19386
19387    public org.sonar.batch.protocol.output.BatchReport.CoverageDetail getDefaultInstanceForType() {
19388      return DEFAULT_INSTANCE;
19389    }
19390
19391  }
19392
19393  private static com.google.protobuf.Descriptors.Descriptor
19394    internal_static_Metadata_descriptor;
19395  private static
19396    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19397      internal_static_Metadata_fieldAccessorTable;
19398  private static com.google.protobuf.Descriptors.Descriptor
19399    internal_static_ActiveRule_descriptor;
19400  private static
19401    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19402      internal_static_ActiveRule_fieldAccessorTable;
19403  private static com.google.protobuf.Descriptors.Descriptor
19404    internal_static_ActiveRule_ActiveRuleParam_descriptor;
19405  private static
19406    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19407      internal_static_ActiveRule_ActiveRuleParam_fieldAccessorTable;
19408  private static com.google.protobuf.Descriptors.Descriptor
19409    internal_static_ComponentLink_descriptor;
19410  private static
19411    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19412      internal_static_ComponentLink_fieldAccessorTable;
19413  private static com.google.protobuf.Descriptors.Descriptor
19414    internal_static_Component_descriptor;
19415  private static
19416    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19417      internal_static_Component_fieldAccessorTable;
19418  private static com.google.protobuf.Descriptors.Descriptor
19419    internal_static_Measure_descriptor;
19420  private static
19421    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19422      internal_static_Measure_fieldAccessorTable;
19423  private static com.google.protobuf.Descriptors.Descriptor
19424    internal_static_Issue_descriptor;
19425  private static
19426    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19427      internal_static_Issue_fieldAccessorTable;
19428  private static com.google.protobuf.Descriptors.Descriptor
19429    internal_static_IssueLocation_descriptor;
19430  private static
19431    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19432      internal_static_IssueLocation_fieldAccessorTable;
19433  private static com.google.protobuf.Descriptors.Descriptor
19434    internal_static_Flow_descriptor;
19435  private static
19436    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19437      internal_static_Flow_fieldAccessorTable;
19438  private static com.google.protobuf.Descriptors.Descriptor
19439    internal_static_Changesets_descriptor;
19440  private static
19441    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19442      internal_static_Changesets_fieldAccessorTable;
19443  private static com.google.protobuf.Descriptors.Descriptor
19444    internal_static_Changesets_Changeset_descriptor;
19445  private static
19446    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19447      internal_static_Changesets_Changeset_fieldAccessorTable;
19448  private static com.google.protobuf.Descriptors.Descriptor
19449    internal_static_Duplicate_descriptor;
19450  private static
19451    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19452      internal_static_Duplicate_fieldAccessorTable;
19453  private static com.google.protobuf.Descriptors.Descriptor
19454    internal_static_Duplication_descriptor;
19455  private static
19456    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19457      internal_static_Duplication_fieldAccessorTable;
19458  private static com.google.protobuf.Descriptors.Descriptor
19459    internal_static_CpdTextBlock_descriptor;
19460  private static
19461    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19462      internal_static_CpdTextBlock_fieldAccessorTable;
19463  private static com.google.protobuf.Descriptors.Descriptor
19464    internal_static_TextRange_descriptor;
19465  private static
19466    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19467      internal_static_TextRange_fieldAccessorTable;
19468  private static com.google.protobuf.Descriptors.Descriptor
19469    internal_static_Symbol_descriptor;
19470  private static
19471    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19472      internal_static_Symbol_fieldAccessorTable;
19473  private static com.google.protobuf.Descriptors.Descriptor
19474    internal_static_Coverage_descriptor;
19475  private static
19476    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19477      internal_static_Coverage_fieldAccessorTable;
19478  private static com.google.protobuf.Descriptors.Descriptor
19479    internal_static_SyntaxHighlighting_descriptor;
19480  private static
19481    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19482      internal_static_SyntaxHighlighting_fieldAccessorTable;
19483  private static com.google.protobuf.Descriptors.Descriptor
19484    internal_static_Test_descriptor;
19485  private static
19486    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19487      internal_static_Test_fieldAccessorTable;
19488  private static com.google.protobuf.Descriptors.Descriptor
19489    internal_static_CoverageDetail_descriptor;
19490  private static
19491    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19492      internal_static_CoverageDetail_fieldAccessorTable;
19493  private static com.google.protobuf.Descriptors.Descriptor
19494    internal_static_CoverageDetail_CoveredFile_descriptor;
19495  private static
19496    com.google.protobuf.GeneratedMessage.FieldAccessorTable
19497      internal_static_CoverageDetail_CoveredFile_fieldAccessorTable;
19498
19499  public static com.google.protobuf.Descriptors.FileDescriptor
19500      getDescriptor() {
19501    return descriptor;
19502  }
19503  private static com.google.protobuf.Descriptors.FileDescriptor
19504      descriptor;
19505  static {
19506    java.lang.String[] descriptorData = {
19507      "\n\022batch_report.proto\032\017constants.proto\"\217\001" +
19508      "\n\010Metadata\022\025\n\ranalysis_date\030\001 \001(\003\022\023\n\013pro" +
19509      "ject_key\030\002 \001(\t\022\016\n\006branch\030\003 \001(\t\022\032\n\022root_c" +
19510      "omponent_ref\030\004 \001(\005\022+\n#cross_project_dupl" +
19511      "ication_activated\030\005 \001(\010\"\257\001\n\nActiveRule\022\027" +
19512      "\n\017rule_repository\030\001 \001(\t\022\020\n\010rule_key\030\002 \001(" +
19513      "\t\022\033\n\010severity\030\003 \001(\0162\t.Severity\022*\n\005param\030" +
19514      "\004 \003(\0132\033.ActiveRule.ActiveRuleParam\032-\n\017Ac" +
19515      "tiveRuleParam\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(" +
19516      "\t\"?\n\rComponentLink\022 \n\004type\030\001 \001(\0162\022.Compo",
19517      "nentLinkType\022\014\n\004href\030\002 \001(\t\"\354\001\n\tComponent" +
19518      "\022\013\n\003ref\030\001 \001(\005\022\014\n\004path\030\002 \001(\t\022\014\n\004name\030\003 \001(" +
19519      "\t\022\034\n\004type\030\004 \001(\0162\016.ComponentType\022\017\n\007is_te" +
19520      "st\030\005 \001(\010\022\020\n\010language\030\006 \001(\t\022\025\n\tchild_ref\030" +
19521      "\007 \003(\005B\002\020\001\022\034\n\004link\030\010 \003(\0132\016.ComponentLink\022" +
19522      "\017\n\007version\030\t \001(\t\022\013\n\003key\030\n \001(\t\022\r\n\005lines\030\013" +
19523      " \001(\005\022\023\n\013description\030\014 \001(\t\"\256\001\n\007Measure\022%\n" +
19524      "\nvalue_type\030\001 \001(\0162\021.MeasureValueType\022\025\n\r" +
19525      "boolean_value\030\002 \001(\010\022\021\n\tint_value\030\003 \001(\005\022\022" +
19526      "\n\nlong_value\030\004 \001(\003\022\024\n\014double_value\030\005 \001(\001",
19527      "\022\024\n\014string_value\030\006 \001(\t\022\022\n\nmetric_key\030\007 \001" +
19528      "(\t\"\266\001\n\005Issue\022\027\n\017rule_repository\030\001 \001(\t\022\020\n" +
19529      "\010rule_key\030\002 \001(\t\022\014\n\004line\030\003 \001(\005\022\013\n\003msg\030\004 \001" +
19530      "(\t\022\033\n\010severity\030\005 \001(\0162\t.Severity\022\025\n\reffor" +
19531      "t_to_fix\030\006 \001(\001\022\036\n\ntext_range\030\007 \001(\0132\n.Tex" +
19532      "tRange\022\023\n\004flow\030\010 \003(\0132\005.Flow\"S\n\rIssueLoca" +
19533      "tion\022\025\n\rcomponent_ref\030\001 \001(\005\022\036\n\ntext_rang" +
19534      "e\030\002 \001(\0132\n.TextRange\022\013\n\003msg\030\003 \001(\t\"(\n\004Flow" +
19535      "\022 \n\010location\030\001 \003(\0132\016.IssueLocation\"\254\001\n\nC" +
19536      "hangesets\022\025\n\rcomponent_ref\030\001 \001(\005\022(\n\tchan",
19537      "geset\030\002 \003(\0132\025.Changesets.Changeset\022 \n\024ch" +
19538      "angesetIndexByLine\030\003 \003(\005B\002\020\001\032;\n\tChangese" +
19539      "t\022\020\n\010revision\030\001 \001(\t\022\016\n\006author\030\002 \001(\t\022\014\n\004d" +
19540      "ate\030\003 \001(\003\">\n\tDuplicate\022\026\n\016other_file_ref" +
19541      "\030\001 \001(\005\022\031\n\005range\030\002 \001(\0132\n.TextRange\"Q\n\013Dup" +
19542      "lication\022#\n\017origin_position\030\001 \001(\0132\n.Text" +
19543      "Range\022\035\n\tduplicate\030\002 \003(\0132\n.Duplicate\"v\n\014" +
19544      "CpdTextBlock\022\014\n\004hash\030\001 \001(\t\022\022\n\nstart_line" +
19545      "\030\002 \001(\005\022\020\n\010end_line\030\003 \001(\005\022\031\n\021start_token_" +
19546      "index\030\004 \001(\005\022\027\n\017end_token_index\030\005 \001(\005\"[\n\t",
19547      "TextRange\022\022\n\nstart_line\030\001 \001(\005\022\020\n\010end_lin" +
19548      "e\030\002 \001(\005\022\024\n\014start_offset\030\003 \001(\005\022\022\n\nend_off" +
19549      "set\030\004 \001(\005\"H\n\006Symbol\022\037\n\013declaration\030\001 \001(\013" +
19550      "2\n.TextRange\022\035\n\treference\030\002 \003(\0132\n.TextRa" +
19551      "nge\"\260\001\n\010Coverage\022\014\n\004line\030\001 \001(\005\022\022\n\ncondit" +
19552      "ions\030\002 \001(\005\022\017\n\007ut_hits\030\003 \001(\010\022\017\n\007it_hits\030\004" +
19553      " \001(\010\022\035\n\025ut_covered_conditions\030\005 \001(\005\022\035\n\025i" +
19554      "t_covered_conditions\030\006 \001(\005\022\"\n\032overall_co" +
19555      "vered_conditions\030\007 \001(\005\"P\n\022SyntaxHighligh" +
19556      "ting\022\031\n\005range\030\001 \001(\0132\n.TextRange\022\037\n\004type\030",
19557      "\002 \001(\0162\021.HighlightingType\"j\n\004Test\022\014\n\004name" +
19558      "\030\001 \001(\t\022\033\n\006status\030\002 \001(\0162\013.TestStatus\022\026\n\016d" +
19559      "uration_in_ms\030\003 \001(\003\022\022\n\nstacktrace\030\004 \001(\t\022" +
19560      "\013\n\003msg\030\005 \001(\t\"\221\001\n\016CoverageDetail\022\021\n\ttest_" +
19561      "name\030\001 \001(\t\0221\n\014covered_file\030\002 \003(\0132\033.Cover" +
19562      "ageDetail.CoveredFile\0329\n\013CoveredFile\022\020\n\010" +
19563      "file_ref\030\001 \001(\005\022\030\n\014covered_line\030\002 \003(\005B\002\020\001" +
19564      "B#\n\037org.sonar.batch.protocol.outputH\001"
19565    };
19566    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
19567        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
19568          public com.google.protobuf.ExtensionRegistry assignDescriptors(
19569              com.google.protobuf.Descriptors.FileDescriptor root) {
19570            descriptor = root;
19571            return null;
19572          }
19573        };
19574    com.google.protobuf.Descriptors.FileDescriptor
19575      .internalBuildGeneratedFileFrom(descriptorData,
19576        new com.google.protobuf.Descriptors.FileDescriptor[] {
19577          org.sonar.batch.protocol.Constants.getDescriptor(),
19578        }, assigner);
19579    internal_static_Metadata_descriptor =
19580      getDescriptor().getMessageTypes().get(0);
19581    internal_static_Metadata_fieldAccessorTable = new
19582      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19583        internal_static_Metadata_descriptor,
19584        new java.lang.String[] { "AnalysisDate", "ProjectKey", "Branch", "RootComponentRef", "CrossProjectDuplicationActivated", });
19585    internal_static_ActiveRule_descriptor =
19586      getDescriptor().getMessageTypes().get(1);
19587    internal_static_ActiveRule_fieldAccessorTable = new
19588      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19589        internal_static_ActiveRule_descriptor,
19590        new java.lang.String[] { "RuleRepository", "RuleKey", "Severity", "Param", });
19591    internal_static_ActiveRule_ActiveRuleParam_descriptor =
19592      internal_static_ActiveRule_descriptor.getNestedTypes().get(0);
19593    internal_static_ActiveRule_ActiveRuleParam_fieldAccessorTable = new
19594      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19595        internal_static_ActiveRule_ActiveRuleParam_descriptor,
19596        new java.lang.String[] { "Key", "Value", });
19597    internal_static_ComponentLink_descriptor =
19598      getDescriptor().getMessageTypes().get(2);
19599    internal_static_ComponentLink_fieldAccessorTable = new
19600      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19601        internal_static_ComponentLink_descriptor,
19602        new java.lang.String[] { "Type", "Href", });
19603    internal_static_Component_descriptor =
19604      getDescriptor().getMessageTypes().get(3);
19605    internal_static_Component_fieldAccessorTable = new
19606      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19607        internal_static_Component_descriptor,
19608        new java.lang.String[] { "Ref", "Path", "Name", "Type", "IsTest", "Language", "ChildRef", "Link", "Version", "Key", "Lines", "Description", });
19609    internal_static_Measure_descriptor =
19610      getDescriptor().getMessageTypes().get(4);
19611    internal_static_Measure_fieldAccessorTable = new
19612      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19613        internal_static_Measure_descriptor,
19614        new java.lang.String[] { "ValueType", "BooleanValue", "IntValue", "LongValue", "DoubleValue", "StringValue", "MetricKey", });
19615    internal_static_Issue_descriptor =
19616      getDescriptor().getMessageTypes().get(5);
19617    internal_static_Issue_fieldAccessorTable = new
19618      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19619        internal_static_Issue_descriptor,
19620        new java.lang.String[] { "RuleRepository", "RuleKey", "Line", "Msg", "Severity", "EffortToFix", "TextRange", "Flow", });
19621    internal_static_IssueLocation_descriptor =
19622      getDescriptor().getMessageTypes().get(6);
19623    internal_static_IssueLocation_fieldAccessorTable = new
19624      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19625        internal_static_IssueLocation_descriptor,
19626        new java.lang.String[] { "ComponentRef", "TextRange", "Msg", });
19627    internal_static_Flow_descriptor =
19628      getDescriptor().getMessageTypes().get(7);
19629    internal_static_Flow_fieldAccessorTable = new
19630      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19631        internal_static_Flow_descriptor,
19632        new java.lang.String[] { "Location", });
19633    internal_static_Changesets_descriptor =
19634      getDescriptor().getMessageTypes().get(8);
19635    internal_static_Changesets_fieldAccessorTable = new
19636      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19637        internal_static_Changesets_descriptor,
19638        new java.lang.String[] { "ComponentRef", "Changeset", "ChangesetIndexByLine", });
19639    internal_static_Changesets_Changeset_descriptor =
19640      internal_static_Changesets_descriptor.getNestedTypes().get(0);
19641    internal_static_Changesets_Changeset_fieldAccessorTable = new
19642      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19643        internal_static_Changesets_Changeset_descriptor,
19644        new java.lang.String[] { "Revision", "Author", "Date", });
19645    internal_static_Duplicate_descriptor =
19646      getDescriptor().getMessageTypes().get(9);
19647    internal_static_Duplicate_fieldAccessorTable = new
19648      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19649        internal_static_Duplicate_descriptor,
19650        new java.lang.String[] { "OtherFileRef", "Range", });
19651    internal_static_Duplication_descriptor =
19652      getDescriptor().getMessageTypes().get(10);
19653    internal_static_Duplication_fieldAccessorTable = new
19654      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19655        internal_static_Duplication_descriptor,
19656        new java.lang.String[] { "OriginPosition", "Duplicate", });
19657    internal_static_CpdTextBlock_descriptor =
19658      getDescriptor().getMessageTypes().get(11);
19659    internal_static_CpdTextBlock_fieldAccessorTable = new
19660      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19661        internal_static_CpdTextBlock_descriptor,
19662        new java.lang.String[] { "Hash", "StartLine", "EndLine", "StartTokenIndex", "EndTokenIndex", });
19663    internal_static_TextRange_descriptor =
19664      getDescriptor().getMessageTypes().get(12);
19665    internal_static_TextRange_fieldAccessorTable = new
19666      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19667        internal_static_TextRange_descriptor,
19668        new java.lang.String[] { "StartLine", "EndLine", "StartOffset", "EndOffset", });
19669    internal_static_Symbol_descriptor =
19670      getDescriptor().getMessageTypes().get(13);
19671    internal_static_Symbol_fieldAccessorTable = new
19672      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19673        internal_static_Symbol_descriptor,
19674        new java.lang.String[] { "Declaration", "Reference", });
19675    internal_static_Coverage_descriptor =
19676      getDescriptor().getMessageTypes().get(14);
19677    internal_static_Coverage_fieldAccessorTable = new
19678      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19679        internal_static_Coverage_descriptor,
19680        new java.lang.String[] { "Line", "Conditions", "UtHits", "ItHits", "UtCoveredConditions", "ItCoveredConditions", "OverallCoveredConditions", });
19681    internal_static_SyntaxHighlighting_descriptor =
19682      getDescriptor().getMessageTypes().get(15);
19683    internal_static_SyntaxHighlighting_fieldAccessorTable = new
19684      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19685        internal_static_SyntaxHighlighting_descriptor,
19686        new java.lang.String[] { "Range", "Type", });
19687    internal_static_Test_descriptor =
19688      getDescriptor().getMessageTypes().get(16);
19689    internal_static_Test_fieldAccessorTable = new
19690      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19691        internal_static_Test_descriptor,
19692        new java.lang.String[] { "Name", "Status", "DurationInMs", "Stacktrace", "Msg", });
19693    internal_static_CoverageDetail_descriptor =
19694      getDescriptor().getMessageTypes().get(17);
19695    internal_static_CoverageDetail_fieldAccessorTable = new
19696      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19697        internal_static_CoverageDetail_descriptor,
19698        new java.lang.String[] { "TestName", "CoveredFile", });
19699    internal_static_CoverageDetail_CoveredFile_descriptor =
19700      internal_static_CoverageDetail_descriptor.getNestedTypes().get(0);
19701    internal_static_CoverageDetail_CoveredFile_fieldAccessorTable = new
19702      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
19703        internal_static_CoverageDetail_CoveredFile_descriptor,
19704        new java.lang.String[] { "FileRef", "CoveredLine", });
19705    org.sonar.batch.protocol.Constants.getDescriptor();
19706  }
19707
19708  // @@protoc_insertion_point(outer_class_scope)
19709}