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

com.google.protobuf.compiler.PluginProtos Maven / Gradle / Ivy

Go to download

Kotlin core Protocol Buffers library. Protocol Buffers are a way of encoding structured data in an efficient yet extensible format.

There is a newer version: 4.29.0-RC2
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: google/protobuf/compiler/plugin.proto
// Protobuf Java Version: 4.28.0

package com.google.protobuf.compiler;

public final class PluginProtos {
  private PluginProtos() {}
  static {
    com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
      com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
      /* major= */ 4,
      /* minor= */ 28,
      /* patch= */ 0,
      /* suffix= */ "",
      PluginProtos.class.getName());
  }
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistryLite registry) {
  }

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

    /**
     * optional int32 major = 1 [json_name = "major"];
     * @return Whether the major field is set.
     */
    boolean hasMajor();
    /**
     * optional int32 major = 1 [json_name = "major"];
     * @return The major.
     */
    int getMajor();

    /**
     * optional int32 minor = 2 [json_name = "minor"];
     * @return Whether the minor field is set.
     */
    boolean hasMinor();
    /**
     * optional int32 minor = 2 [json_name = "minor"];
     * @return The minor.
     */
    int getMinor();

    /**
     * optional int32 patch = 3 [json_name = "patch"];
     * @return Whether the patch field is set.
     */
    boolean hasPatch();
    /**
     * optional int32 patch = 3 [json_name = "patch"];
     * @return The patch.
     */
    int getPatch();

    /**
     * optional string suffix = 4 [json_name = "suffix"];
     * @return Whether the suffix field is set.
     */
    boolean hasSuffix();
    /**
     * optional string suffix = 4 [json_name = "suffix"];
     * @return The suffix.
     */
    java.lang.String getSuffix();
    /**
     * optional string suffix = 4 [json_name = "suffix"];
     * @return The bytes for suffix.
     */
    com.google.protobuf.ByteString
        getSuffixBytes();
  }
  /**
   * Protobuf type {@code google.protobuf.compiler.Version}
   */
  public static final class Version extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:google.protobuf.compiler.Version)
      VersionOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        Version.class.getName());
    }
    // Use Version.newBuilder() to construct.
    private Version(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private Version() {
      suffix_ = "";
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_Version_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_Version_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.protobuf.compiler.PluginProtos.Version.class, com.google.protobuf.compiler.PluginProtos.Version.Builder.class);
    }

    private int bitField0_;
    public static final int MAJOR_FIELD_NUMBER = 1;
    private int major_ = 0;
    /**
     * optional int32 major = 1 [json_name = "major"];
     * @return Whether the major field is set.
     */
    @java.lang.Override
    public boolean hasMajor() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional int32 major = 1 [json_name = "major"];
     * @return The major.
     */
    @java.lang.Override
    public int getMajor() {
      return major_;
    }

    public static final int MINOR_FIELD_NUMBER = 2;
    private int minor_ = 0;
    /**
     * optional int32 minor = 2 [json_name = "minor"];
     * @return Whether the minor field is set.
     */
    @java.lang.Override
    public boolean hasMinor() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional int32 minor = 2 [json_name = "minor"];
     * @return The minor.
     */
    @java.lang.Override
    public int getMinor() {
      return minor_;
    }

    public static final int PATCH_FIELD_NUMBER = 3;
    private int patch_ = 0;
    /**
     * optional int32 patch = 3 [json_name = "patch"];
     * @return Whether the patch field is set.
     */
    @java.lang.Override
    public boolean hasPatch() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional int32 patch = 3 [json_name = "patch"];
     * @return The patch.
     */
    @java.lang.Override
    public int getPatch() {
      return patch_;
    }

    public static final int SUFFIX_FIELD_NUMBER = 4;
    @SuppressWarnings("serial")
    private volatile java.lang.Object suffix_ = "";
    /**
     * optional string suffix = 4 [json_name = "suffix"];
     * @return Whether the suffix field is set.
     */
    @java.lang.Override
    public boolean hasSuffix() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional string suffix = 4 [json_name = "suffix"];
     * @return The suffix.
     */
    @java.lang.Override
    public java.lang.String getSuffix() {
      java.lang.Object ref = suffix_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          suffix_ = s;
        }
        return s;
      }
    }
    /**
     * optional string suffix = 4 [json_name = "suffix"];
     * @return The bytes for suffix.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getSuffixBytes() {
      java.lang.Object ref = suffix_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        suffix_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        output.writeInt32(1, major_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeInt32(2, minor_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt32(3, patch_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 4, suffix_);
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, major_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, minor_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, patch_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(4, suffix_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.protobuf.compiler.PluginProtos.Version)) {
        return super.equals(obj);
      }
      com.google.protobuf.compiler.PluginProtos.Version other = (com.google.protobuf.compiler.PluginProtos.Version) obj;

      if (hasMajor() != other.hasMajor()) return false;
      if (hasMajor()) {
        if (getMajor()
            != other.getMajor()) return false;
      }
      if (hasMinor() != other.hasMinor()) return false;
      if (hasMinor()) {
        if (getMinor()
            != other.getMinor()) return false;
      }
      if (hasPatch() != other.hasPatch()) return false;
      if (hasPatch()) {
        if (getPatch()
            != other.getPatch()) return false;
      }
      if (hasSuffix() != other.hasSuffix()) return false;
      if (hasSuffix()) {
        if (!getSuffix()
            .equals(other.getSuffix())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasMajor()) {
        hash = (37 * hash) + MAJOR_FIELD_NUMBER;
        hash = (53 * hash) + getMajor();
      }
      if (hasMinor()) {
        hash = (37 * hash) + MINOR_FIELD_NUMBER;
        hash = (53 * hash) + getMinor();
      }
      if (hasPatch()) {
        hash = (37 * hash) + PATCH_FIELD_NUMBER;
        hash = (53 * hash) + getPatch();
      }
      if (hasSuffix()) {
        hash = (37 * hash) + SUFFIX_FIELD_NUMBER;
        hash = (53 * hash) + getSuffix().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.protobuf.compiler.PluginProtos.Version parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.protobuf.compiler.PluginProtos.Version parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.protobuf.compiler.PluginProtos.Version parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.protobuf.compiler.PluginProtos.Version parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.protobuf.compiler.PluginProtos.Version parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.protobuf.compiler.PluginProtos.Version parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.protobuf.compiler.PluginProtos.Version parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.google.protobuf.compiler.PluginProtos.Version parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.google.protobuf.compiler.PluginProtos.Version parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.google.protobuf.compiler.PluginProtos.Version parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.google.protobuf.compiler.PluginProtos.Version parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.google.protobuf.compiler.PluginProtos.Version parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.protobuf.compiler.PluginProtos.Version prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code google.protobuf.compiler.Version}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:google.protobuf.compiler.Version)
        com.google.protobuf.compiler.PluginProtos.VersionOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_Version_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_Version_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.protobuf.compiler.PluginProtos.Version.class, com.google.protobuf.compiler.PluginProtos.Version.Builder.class);
      }

      // Construct using com.google.protobuf.compiler.PluginProtos.Version.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        major_ = 0;
        minor_ = 0;
        patch_ = 0;
        suffix_ = "";
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_Version_descriptor;
      }

      @java.lang.Override
      public com.google.protobuf.compiler.PluginProtos.Version getDefaultInstanceForType() {
        return com.google.protobuf.compiler.PluginProtos.Version.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.protobuf.compiler.PluginProtos.Version build() {
        com.google.protobuf.compiler.PluginProtos.Version result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.protobuf.compiler.PluginProtos.Version buildPartial() {
        com.google.protobuf.compiler.PluginProtos.Version result = new com.google.protobuf.compiler.PluginProtos.Version(this);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartial0(com.google.protobuf.compiler.PluginProtos.Version result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.major_ = major_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.minor_ = minor_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.patch_ = patch_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.suffix_ = suffix_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.protobuf.compiler.PluginProtos.Version) {
          return mergeFrom((com.google.protobuf.compiler.PluginProtos.Version)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.protobuf.compiler.PluginProtos.Version other) {
        if (other == com.google.protobuf.compiler.PluginProtos.Version.getDefaultInstance()) return this;
        if (other.hasMajor()) {
          setMajor(other.getMajor());
        }
        if (other.hasMinor()) {
          setMinor(other.getMinor());
        }
        if (other.hasPatch()) {
          setPatch(other.getPatch());
        }
        if (other.hasSuffix()) {
          suffix_ = other.suffix_;
          bitField0_ |= 0x00000008;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 8: {
                major_ = input.readInt32();
                bitField0_ |= 0x00000001;
                break;
              } // case 8
              case 16: {
                minor_ = input.readInt32();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                patch_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 34: {
                suffix_ = input.readBytes();
                bitField0_ |= 0x00000008;
                break;
              } // case 34
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private int major_ ;
      /**
       * optional int32 major = 1 [json_name = "major"];
       * @return Whether the major field is set.
       */
      @java.lang.Override
      public boolean hasMajor() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional int32 major = 1 [json_name = "major"];
       * @return The major.
       */
      @java.lang.Override
      public int getMajor() {
        return major_;
      }
      /**
       * optional int32 major = 1 [json_name = "major"];
       * @param value The major to set.
       * @return This builder for chaining.
       */
      public Builder setMajor(int value) {

        major_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional int32 major = 1 [json_name = "major"];
       * @return This builder for chaining.
       */
      public Builder clearMajor() {
        bitField0_ = (bitField0_ & ~0x00000001);
        major_ = 0;
        onChanged();
        return this;
      }

      private int minor_ ;
      /**
       * optional int32 minor = 2 [json_name = "minor"];
       * @return Whether the minor field is set.
       */
      @java.lang.Override
      public boolean hasMinor() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional int32 minor = 2 [json_name = "minor"];
       * @return The minor.
       */
      @java.lang.Override
      public int getMinor() {
        return minor_;
      }
      /**
       * optional int32 minor = 2 [json_name = "minor"];
       * @param value The minor to set.
       * @return This builder for chaining.
       */
      public Builder setMinor(int value) {

        minor_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional int32 minor = 2 [json_name = "minor"];
       * @return This builder for chaining.
       */
      public Builder clearMinor() {
        bitField0_ = (bitField0_ & ~0x00000002);
        minor_ = 0;
        onChanged();
        return this;
      }

      private int patch_ ;
      /**
       * optional int32 patch = 3 [json_name = "patch"];
       * @return Whether the patch field is set.
       */
      @java.lang.Override
      public boolean hasPatch() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional int32 patch = 3 [json_name = "patch"];
       * @return The patch.
       */
      @java.lang.Override
      public int getPatch() {
        return patch_;
      }
      /**
       * optional int32 patch = 3 [json_name = "patch"];
       * @param value The patch to set.
       * @return This builder for chaining.
       */
      public Builder setPatch(int value) {

        patch_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional int32 patch = 3 [json_name = "patch"];
       * @return This builder for chaining.
       */
      public Builder clearPatch() {
        bitField0_ = (bitField0_ & ~0x00000004);
        patch_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object suffix_ = "";
      /**
       * optional string suffix = 4 [json_name = "suffix"];
       * @return Whether the suffix field is set.
       */
      public boolean hasSuffix() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional string suffix = 4 [json_name = "suffix"];
       * @return The suffix.
       */
      public java.lang.String getSuffix() {
        java.lang.Object ref = suffix_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            suffix_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string suffix = 4 [json_name = "suffix"];
       * @return The bytes for suffix.
       */
      public com.google.protobuf.ByteString
          getSuffixBytes() {
        java.lang.Object ref = suffix_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          suffix_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string suffix = 4 [json_name = "suffix"];
       * @param value The suffix to set.
       * @return This builder for chaining.
       */
      public Builder setSuffix(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        suffix_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional string suffix = 4 [json_name = "suffix"];
       * @return This builder for chaining.
       */
      public Builder clearSuffix() {
        suffix_ = getDefaultInstance().getSuffix();
        bitField0_ = (bitField0_ & ~0x00000008);
        onChanged();
        return this;
      }
      /**
       * optional string suffix = 4 [json_name = "suffix"];
       * @param value The bytes for suffix to set.
       * @return This builder for chaining.
       */
      public Builder setSuffixBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        suffix_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:google.protobuf.compiler.Version)
    }

    // @@protoc_insertion_point(class_scope:google.protobuf.compiler.Version)
    private static final com.google.protobuf.compiler.PluginProtos.Version DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.protobuf.compiler.PluginProtos.Version();
    }

    public static com.google.protobuf.compiler.PluginProtos.Version getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public com.google.protobuf.compiler.PluginProtos.Version getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CodeGeneratorRequestOrBuilder extends
      // @@protoc_insertion_point(interface_extends:google.protobuf.compiler.CodeGeneratorRequest)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
     * @return A list containing the fileToGenerate.
     */
    java.util.List
        getFileToGenerateList();
    /**
     * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
     * @return The count of fileToGenerate.
     */
    int getFileToGenerateCount();
    /**
     * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
     * @param index The index of the element to return.
     * @return The fileToGenerate at the given index.
     */
    java.lang.String getFileToGenerate(int index);
    /**
     * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
     * @param index The index of the value to return.
     * @return The bytes of the fileToGenerate at the given index.
     */
    com.google.protobuf.ByteString
        getFileToGenerateBytes(int index);

    /**
     * optional string parameter = 2 [json_name = "parameter"];
     * @return Whether the parameter field is set.
     */
    boolean hasParameter();
    /**
     * optional string parameter = 2 [json_name = "parameter"];
     * @return The parameter.
     */
    java.lang.String getParameter();
    /**
     * optional string parameter = 2 [json_name = "parameter"];
     * @return The bytes for parameter.
     */
    com.google.protobuf.ByteString
        getParameterBytes();

    /**
     * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
     */
    java.util.List 
        getProtoFileList();
    /**
     * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
     */
    com.google.protobuf.DescriptorProtos.FileDescriptorProto getProtoFile(int index);
    /**
     * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
     */
    int getProtoFileCount();
    /**
     * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
     */
    java.util.List 
        getProtoFileOrBuilderList();
    /**
     * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
     */
    com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder getProtoFileOrBuilder(
        int index);

    /**
     * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
     */
    java.util.List 
        getSourceFileDescriptorsList();
    /**
     * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
     */
    com.google.protobuf.DescriptorProtos.FileDescriptorProto getSourceFileDescriptors(int index);
    /**
     * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
     */
    int getSourceFileDescriptorsCount();
    /**
     * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
     */
    java.util.List 
        getSourceFileDescriptorsOrBuilderList();
    /**
     * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
     */
    com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder getSourceFileDescriptorsOrBuilder(
        int index);

    /**
     * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
     * @return Whether the compilerVersion field is set.
     */
    boolean hasCompilerVersion();
    /**
     * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
     * @return The compilerVersion.
     */
    com.google.protobuf.compiler.PluginProtos.Version getCompilerVersion();
    /**
     * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
     */
    com.google.protobuf.compiler.PluginProtos.VersionOrBuilder getCompilerVersionOrBuilder();
  }
  /**
   * Protobuf type {@code google.protobuf.compiler.CodeGeneratorRequest}
   */
  public static final class CodeGeneratorRequest extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:google.protobuf.compiler.CodeGeneratorRequest)
      CodeGeneratorRequestOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CodeGeneratorRequest.class.getName());
    }
    // Use CodeGeneratorRequest.newBuilder() to construct.
    private CodeGeneratorRequest(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CodeGeneratorRequest() {
      fileToGenerate_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      parameter_ = "";
      protoFile_ = java.util.Collections.emptyList();
      sourceFileDescriptors_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorRequest_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorRequest_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.class, com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder.class);
    }

    private int bitField0_;
    public static final int FILE_TO_GENERATE_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private com.google.protobuf.LazyStringArrayList fileToGenerate_ =
        com.google.protobuf.LazyStringArrayList.emptyList();
    /**
     * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
     * @return A list containing the fileToGenerate.
     */
    public com.google.protobuf.ProtocolStringList
        getFileToGenerateList() {
      return fileToGenerate_;
    }
    /**
     * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
     * @return The count of fileToGenerate.
     */
    public int getFileToGenerateCount() {
      return fileToGenerate_.size();
    }
    /**
     * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
     * @param index The index of the element to return.
     * @return The fileToGenerate at the given index.
     */
    public java.lang.String getFileToGenerate(int index) {
      return fileToGenerate_.get(index);
    }
    /**
     * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
     * @param index The index of the value to return.
     * @return The bytes of the fileToGenerate at the given index.
     */
    public com.google.protobuf.ByteString
        getFileToGenerateBytes(int index) {
      return fileToGenerate_.getByteString(index);
    }

    public static final int PARAMETER_FIELD_NUMBER = 2;
    @SuppressWarnings("serial")
    private volatile java.lang.Object parameter_ = "";
    /**
     * optional string parameter = 2 [json_name = "parameter"];
     * @return Whether the parameter field is set.
     */
    @java.lang.Override
    public boolean hasParameter() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional string parameter = 2 [json_name = "parameter"];
     * @return The parameter.
     */
    @java.lang.Override
    public java.lang.String getParameter() {
      java.lang.Object ref = parameter_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          parameter_ = s;
        }
        return s;
      }
    }
    /**
     * optional string parameter = 2 [json_name = "parameter"];
     * @return The bytes for parameter.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getParameterBytes() {
      java.lang.Object ref = parameter_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        parameter_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int PROTO_FILE_FIELD_NUMBER = 15;
    @SuppressWarnings("serial")
    private java.util.List protoFile_;
    /**
     * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
     */
    @java.lang.Override
    public java.util.List getProtoFileList() {
      return protoFile_;
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
     */
    @java.lang.Override
    public java.util.List 
        getProtoFileOrBuilderList() {
      return protoFile_;
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
     */
    @java.lang.Override
    public int getProtoFileCount() {
      return protoFile_.size();
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.FileDescriptorProto getProtoFile(int index) {
      return protoFile_.get(index);
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder getProtoFileOrBuilder(
        int index) {
      return protoFile_.get(index);
    }

    public static final int SOURCE_FILE_DESCRIPTORS_FIELD_NUMBER = 17;
    @SuppressWarnings("serial")
    private java.util.List sourceFileDescriptors_;
    /**
     * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
     */
    @java.lang.Override
    public java.util.List getSourceFileDescriptorsList() {
      return sourceFileDescriptors_;
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
     */
    @java.lang.Override
    public java.util.List 
        getSourceFileDescriptorsOrBuilderList() {
      return sourceFileDescriptors_;
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
     */
    @java.lang.Override
    public int getSourceFileDescriptorsCount() {
      return sourceFileDescriptors_.size();
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.FileDescriptorProto getSourceFileDescriptors(int index) {
      return sourceFileDescriptors_.get(index);
    }
    /**
     * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
     */
    @java.lang.Override
    public com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder getSourceFileDescriptorsOrBuilder(
        int index) {
      return sourceFileDescriptors_.get(index);
    }

    public static final int COMPILER_VERSION_FIELD_NUMBER = 3;
    private com.google.protobuf.compiler.PluginProtos.Version compilerVersion_;
    /**
     * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
     * @return Whether the compilerVersion field is set.
     */
    @java.lang.Override
    public boolean hasCompilerVersion() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
     * @return The compilerVersion.
     */
    @java.lang.Override
    public com.google.protobuf.compiler.PluginProtos.Version getCompilerVersion() {
      return compilerVersion_ == null ? com.google.protobuf.compiler.PluginProtos.Version.getDefaultInstance() : compilerVersion_;
    }
    /**
     * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
     */
    @java.lang.Override
    public com.google.protobuf.compiler.PluginProtos.VersionOrBuilder getCompilerVersionOrBuilder() {
      return compilerVersion_ == null ? com.google.protobuf.compiler.PluginProtos.Version.getDefaultInstance() : compilerVersion_;
    }

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

      for (int i = 0; i < getProtoFileCount(); i++) {
        if (!getProtoFile(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      for (int i = 0; i < getSourceFileDescriptorsCount(); i++) {
        if (!getSourceFileDescriptors(i).isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
      }
      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      for (int i = 0; i < fileToGenerate_.size(); i++) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, fileToGenerate_.getRaw(i));
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 2, parameter_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeMessage(3, getCompilerVersion());
      }
      for (int i = 0; i < protoFile_.size(); i++) {
        output.writeMessage(15, protoFile_.get(i));
      }
      for (int i = 0; i < sourceFileDescriptors_.size(); i++) {
        output.writeMessage(17, sourceFileDescriptors_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < fileToGenerate_.size(); i++) {
          dataSize += computeStringSizeNoTag(fileToGenerate_.getRaw(i));
        }
        size += dataSize;
        size += 1 * getFileToGenerateList().size();
      }
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(2, parameter_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(3, getCompilerVersion());
      }
      for (int i = 0; i < protoFile_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, protoFile_.get(i));
      }
      for (int i = 0; i < sourceFileDescriptors_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(17, sourceFileDescriptors_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest)) {
        return super.equals(obj);
      }
      com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest other = (com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest) obj;

      if (!getFileToGenerateList()
          .equals(other.getFileToGenerateList())) return false;
      if (hasParameter() != other.hasParameter()) return false;
      if (hasParameter()) {
        if (!getParameter()
            .equals(other.getParameter())) return false;
      }
      if (!getProtoFileList()
          .equals(other.getProtoFileList())) return false;
      if (!getSourceFileDescriptorsList()
          .equals(other.getSourceFileDescriptorsList())) return false;
      if (hasCompilerVersion() != other.hasCompilerVersion()) return false;
      if (hasCompilerVersion()) {
        if (!getCompilerVersion()
            .equals(other.getCompilerVersion())) return false;
      }
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (getFileToGenerateCount() > 0) {
        hash = (37 * hash) + FILE_TO_GENERATE_FIELD_NUMBER;
        hash = (53 * hash) + getFileToGenerateList().hashCode();
      }
      if (hasParameter()) {
        hash = (37 * hash) + PARAMETER_FIELD_NUMBER;
        hash = (53 * hash) + getParameter().hashCode();
      }
      if (getProtoFileCount() > 0) {
        hash = (37 * hash) + PROTO_FILE_FIELD_NUMBER;
        hash = (53 * hash) + getProtoFileList().hashCode();
      }
      if (getSourceFileDescriptorsCount() > 0) {
        hash = (37 * hash) + SOURCE_FILE_DESCRIPTORS_FIELD_NUMBER;
        hash = (53 * hash) + getSourceFileDescriptorsList().hashCode();
      }
      if (hasCompilerVersion()) {
        hash = (37 * hash) + COMPILER_VERSION_FIELD_NUMBER;
        hash = (53 * hash) + getCompilerVersion().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code google.protobuf.compiler.CodeGeneratorRequest}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:google.protobuf.compiler.CodeGeneratorRequest)
        com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorRequest_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorRequest_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.class, com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder.class);
      }

      // Construct using com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage
                .alwaysUseFieldBuilders) {
          getProtoFileFieldBuilder();
          getSourceFileDescriptorsFieldBuilder();
          getCompilerVersionFieldBuilder();
        }
      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        fileToGenerate_ =
            com.google.protobuf.LazyStringArrayList.emptyList();
        parameter_ = "";
        if (protoFileBuilder_ == null) {
          protoFile_ = java.util.Collections.emptyList();
        } else {
          protoFile_ = null;
          protoFileBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        if (sourceFileDescriptorsBuilder_ == null) {
          sourceFileDescriptors_ = java.util.Collections.emptyList();
        } else {
          sourceFileDescriptors_ = null;
          sourceFileDescriptorsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        compilerVersion_ = null;
        if (compilerVersionBuilder_ != null) {
          compilerVersionBuilder_.dispose();
          compilerVersionBuilder_ = null;
        }
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorRequest_descriptor;
      }

      @java.lang.Override
      public com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest getDefaultInstanceForType() {
        return com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest build() {
        com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest buildPartial() {
        com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest result = new com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest result) {
        if (protoFileBuilder_ == null) {
          if (((bitField0_ & 0x00000004) != 0)) {
            protoFile_ = java.util.Collections.unmodifiableList(protoFile_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.protoFile_ = protoFile_;
        } else {
          result.protoFile_ = protoFileBuilder_.build();
        }
        if (sourceFileDescriptorsBuilder_ == null) {
          if (((bitField0_ & 0x00000008) != 0)) {
            sourceFileDescriptors_ = java.util.Collections.unmodifiableList(sourceFileDescriptors_);
            bitField0_ = (bitField0_ & ~0x00000008);
          }
          result.sourceFileDescriptors_ = sourceFileDescriptors_;
        } else {
          result.sourceFileDescriptors_ = sourceFileDescriptorsBuilder_.build();
        }
      }

      private void buildPartial0(com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest result) {
        int from_bitField0_ = bitField0_;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          fileToGenerate_.makeImmutable();
          result.fileToGenerate_ = fileToGenerate_;
        }
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.parameter_ = parameter_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000010) != 0)) {
          result.compilerVersion_ = compilerVersionBuilder_ == null
              ? compilerVersion_
              : compilerVersionBuilder_.build();
          to_bitField0_ |= 0x00000002;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest) {
          return mergeFrom((com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest other) {
        if (other == com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.getDefaultInstance()) return this;
        if (!other.fileToGenerate_.isEmpty()) {
          if (fileToGenerate_.isEmpty()) {
            fileToGenerate_ = other.fileToGenerate_;
            bitField0_ |= 0x00000001;
          } else {
            ensureFileToGenerateIsMutable();
            fileToGenerate_.addAll(other.fileToGenerate_);
          }
          onChanged();
        }
        if (other.hasParameter()) {
          parameter_ = other.parameter_;
          bitField0_ |= 0x00000002;
          onChanged();
        }
        if (protoFileBuilder_ == null) {
          if (!other.protoFile_.isEmpty()) {
            if (protoFile_.isEmpty()) {
              protoFile_ = other.protoFile_;
              bitField0_ = (bitField0_ & ~0x00000004);
            } else {
              ensureProtoFileIsMutable();
              protoFile_.addAll(other.protoFile_);
            }
            onChanged();
          }
        } else {
          if (!other.protoFile_.isEmpty()) {
            if (protoFileBuilder_.isEmpty()) {
              protoFileBuilder_.dispose();
              protoFileBuilder_ = null;
              protoFile_ = other.protoFile_;
              bitField0_ = (bitField0_ & ~0x00000004);
              protoFileBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getProtoFileFieldBuilder() : null;
            } else {
              protoFileBuilder_.addAllMessages(other.protoFile_);
            }
          }
        }
        if (sourceFileDescriptorsBuilder_ == null) {
          if (!other.sourceFileDescriptors_.isEmpty()) {
            if (sourceFileDescriptors_.isEmpty()) {
              sourceFileDescriptors_ = other.sourceFileDescriptors_;
              bitField0_ = (bitField0_ & ~0x00000008);
            } else {
              ensureSourceFileDescriptorsIsMutable();
              sourceFileDescriptors_.addAll(other.sourceFileDescriptors_);
            }
            onChanged();
          }
        } else {
          if (!other.sourceFileDescriptors_.isEmpty()) {
            if (sourceFileDescriptorsBuilder_.isEmpty()) {
              sourceFileDescriptorsBuilder_.dispose();
              sourceFileDescriptorsBuilder_ = null;
              sourceFileDescriptors_ = other.sourceFileDescriptors_;
              bitField0_ = (bitField0_ & ~0x00000008);
              sourceFileDescriptorsBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getSourceFileDescriptorsFieldBuilder() : null;
            } else {
              sourceFileDescriptorsBuilder_.addAllMessages(other.sourceFileDescriptors_);
            }
          }
        }
        if (other.hasCompilerVersion()) {
          mergeCompilerVersion(other.getCompilerVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

      @java.lang.Override
      public final boolean isInitialized() {
        for (int i = 0; i < getProtoFileCount(); i++) {
          if (!getProtoFile(i).isInitialized()) {
            return false;
          }
        }
        for (int i = 0; i < getSourceFileDescriptorsCount(); i++) {
          if (!getSourceFileDescriptors(i).isInitialized()) {
            return false;
          }
        }
        return true;
      }

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                com.google.protobuf.ByteString bs = input.readBytes();
                ensureFileToGenerateIsMutable();
                fileToGenerate_.add(bs);
                break;
              } // case 10
              case 18: {
                parameter_ = input.readBytes();
                bitField0_ |= 0x00000002;
                break;
              } // case 18
              case 26: {
                input.readMessage(
                    getCompilerVersionFieldBuilder().getBuilder(),
                    extensionRegistry);
                bitField0_ |= 0x00000010;
                break;
              } // case 26
              case 122: {
                com.google.protobuf.DescriptorProtos.FileDescriptorProto m =
                    input.readMessage(
                        com.google.protobuf.DescriptorProtos.FileDescriptorProto.parser(),
                        extensionRegistry);
                if (protoFileBuilder_ == null) {
                  ensureProtoFileIsMutable();
                  protoFile_.add(m);
                } else {
                  protoFileBuilder_.addMessage(m);
                }
                break;
              } // case 122
              case 138: {
                com.google.protobuf.DescriptorProtos.FileDescriptorProto m =
                    input.readMessage(
                        com.google.protobuf.DescriptorProtos.FileDescriptorProto.parser(),
                        extensionRegistry);
                if (sourceFileDescriptorsBuilder_ == null) {
                  ensureSourceFileDescriptorsIsMutable();
                  sourceFileDescriptors_.add(m);
                } else {
                  sourceFileDescriptorsBuilder_.addMessage(m);
                }
                break;
              } // case 138
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.LazyStringArrayList fileToGenerate_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
      private void ensureFileToGenerateIsMutable() {
        if (!fileToGenerate_.isModifiable()) {
          fileToGenerate_ = new com.google.protobuf.LazyStringArrayList(fileToGenerate_);
        }
        bitField0_ |= 0x00000001;
      }
      /**
       * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
       * @return A list containing the fileToGenerate.
       */
      public com.google.protobuf.ProtocolStringList
          getFileToGenerateList() {
        fileToGenerate_.makeImmutable();
        return fileToGenerate_;
      }
      /**
       * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
       * @return The count of fileToGenerate.
       */
      public int getFileToGenerateCount() {
        return fileToGenerate_.size();
      }
      /**
       * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
       * @param index The index of the element to return.
       * @return The fileToGenerate at the given index.
       */
      public java.lang.String getFileToGenerate(int index) {
        return fileToGenerate_.get(index);
      }
      /**
       * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
       * @param index The index of the value to return.
       * @return The bytes of the fileToGenerate at the given index.
       */
      public com.google.protobuf.ByteString
          getFileToGenerateBytes(int index) {
        return fileToGenerate_.getByteString(index);
      }
      /**
       * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
       * @param index The index to set the value at.
       * @param value The fileToGenerate to set.
       * @return This builder for chaining.
       */
      public Builder setFileToGenerate(
          int index, java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureFileToGenerateIsMutable();
        fileToGenerate_.set(index, value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
       * @param value The fileToGenerate to add.
       * @return This builder for chaining.
       */
      public Builder addFileToGenerate(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        ensureFileToGenerateIsMutable();
        fileToGenerate_.add(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
       * @param values The fileToGenerate to add.
       * @return This builder for chaining.
       */
      public Builder addAllFileToGenerate(
          java.lang.Iterable values) {
        ensureFileToGenerateIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, fileToGenerate_);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
       * @return This builder for chaining.
       */
      public Builder clearFileToGenerate() {
        fileToGenerate_ =
          com.google.protobuf.LazyStringArrayList.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);;
        onChanged();
        return this;
      }
      /**
       * repeated string file_to_generate = 1 [json_name = "fileToGenerate"];
       * @param value The bytes of the fileToGenerate to add.
       * @return This builder for chaining.
       */
      public Builder addFileToGenerateBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        ensureFileToGenerateIsMutable();
        fileToGenerate_.add(value);
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private java.lang.Object parameter_ = "";
      /**
       * optional string parameter = 2 [json_name = "parameter"];
       * @return Whether the parameter field is set.
       */
      public boolean hasParameter() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional string parameter = 2 [json_name = "parameter"];
       * @return The parameter.
       */
      public java.lang.String getParameter() {
        java.lang.Object ref = parameter_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            parameter_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string parameter = 2 [json_name = "parameter"];
       * @return The bytes for parameter.
       */
      public com.google.protobuf.ByteString
          getParameterBytes() {
        java.lang.Object ref = parameter_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          parameter_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string parameter = 2 [json_name = "parameter"];
       * @param value The parameter to set.
       * @return This builder for chaining.
       */
      public Builder setParameter(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        parameter_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional string parameter = 2 [json_name = "parameter"];
       * @return This builder for chaining.
       */
      public Builder clearParameter() {
        parameter_ = getDefaultInstance().getParameter();
        bitField0_ = (bitField0_ & ~0x00000002);
        onChanged();
        return this;
      }
      /**
       * optional string parameter = 2 [json_name = "parameter"];
       * @param value The bytes for parameter to set.
       * @return This builder for chaining.
       */
      public Builder setParameterBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        parameter_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }

      private java.util.List protoFile_ =
        java.util.Collections.emptyList();
      private void ensureProtoFileIsMutable() {
        if (!((bitField0_ & 0x00000004) != 0)) {
          protoFile_ = new java.util.ArrayList(protoFile_);
          bitField0_ |= 0x00000004;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.google.protobuf.DescriptorProtos.FileDescriptorProto, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder> protoFileBuilder_;

      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public java.util.List getProtoFileList() {
        if (protoFileBuilder_ == null) {
          return java.util.Collections.unmodifiableList(protoFile_);
        } else {
          return protoFileBuilder_.getMessageList();
        }
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public int getProtoFileCount() {
        if (protoFileBuilder_ == null) {
          return protoFile_.size();
        } else {
          return protoFileBuilder_.getCount();
        }
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public com.google.protobuf.DescriptorProtos.FileDescriptorProto getProtoFile(int index) {
        if (protoFileBuilder_ == null) {
          return protoFile_.get(index);
        } else {
          return protoFileBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public Builder setProtoFile(
          int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
        if (protoFileBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProtoFileIsMutable();
          protoFile_.set(index, value);
          onChanged();
        } else {
          protoFileBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public Builder setProtoFile(
          int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
        if (protoFileBuilder_ == null) {
          ensureProtoFileIsMutable();
          protoFile_.set(index, builderForValue.build());
          onChanged();
        } else {
          protoFileBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public Builder addProtoFile(com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
        if (protoFileBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProtoFileIsMutable();
          protoFile_.add(value);
          onChanged();
        } else {
          protoFileBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public Builder addProtoFile(
          int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
        if (protoFileBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureProtoFileIsMutable();
          protoFile_.add(index, value);
          onChanged();
        } else {
          protoFileBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public Builder addProtoFile(
          com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
        if (protoFileBuilder_ == null) {
          ensureProtoFileIsMutable();
          protoFile_.add(builderForValue.build());
          onChanged();
        } else {
          protoFileBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public Builder addProtoFile(
          int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
        if (protoFileBuilder_ == null) {
          ensureProtoFileIsMutable();
          protoFile_.add(index, builderForValue.build());
          onChanged();
        } else {
          protoFileBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public Builder addAllProtoFile(
          java.lang.Iterable values) {
        if (protoFileBuilder_ == null) {
          ensureProtoFileIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, protoFile_);
          onChanged();
        } else {
          protoFileBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public Builder clearProtoFile() {
        if (protoFileBuilder_ == null) {
          protoFile_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
        } else {
          protoFileBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public Builder removeProtoFile(int index) {
        if (protoFileBuilder_ == null) {
          ensureProtoFileIsMutable();
          protoFile_.remove(index);
          onChanged();
        } else {
          protoFileBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder getProtoFileBuilder(
          int index) {
        return getProtoFileFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder getProtoFileOrBuilder(
          int index) {
        if (protoFileBuilder_ == null) {
          return protoFile_.get(index);  } else {
          return protoFileBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public java.util.List 
           getProtoFileOrBuilderList() {
        if (protoFileBuilder_ != null) {
          return protoFileBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(protoFile_);
        }
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder addProtoFileBuilder() {
        return getProtoFileFieldBuilder().addBuilder(
            com.google.protobuf.DescriptorProtos.FileDescriptorProto.getDefaultInstance());
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder addProtoFileBuilder(
          int index) {
        return getProtoFileFieldBuilder().addBuilder(
            index, com.google.protobuf.DescriptorProtos.FileDescriptorProto.getDefaultInstance());
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto proto_file = 15 [json_name = "protoFile"];
       */
      public java.util.List 
           getProtoFileBuilderList() {
        return getProtoFileFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.google.protobuf.DescriptorProtos.FileDescriptorProto, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder> 
          getProtoFileFieldBuilder() {
        if (protoFileBuilder_ == null) {
          protoFileBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.google.protobuf.DescriptorProtos.FileDescriptorProto, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder>(
                  protoFile_,
                  ((bitField0_ & 0x00000004) != 0),
                  getParentForChildren(),
                  isClean());
          protoFile_ = null;
        }
        return protoFileBuilder_;
      }

      private java.util.List sourceFileDescriptors_ =
        java.util.Collections.emptyList();
      private void ensureSourceFileDescriptorsIsMutable() {
        if (!((bitField0_ & 0x00000008) != 0)) {
          sourceFileDescriptors_ = new java.util.ArrayList(sourceFileDescriptors_);
          bitField0_ |= 0x00000008;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.google.protobuf.DescriptorProtos.FileDescriptorProto, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder> sourceFileDescriptorsBuilder_;

      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public java.util.List getSourceFileDescriptorsList() {
        if (sourceFileDescriptorsBuilder_ == null) {
          return java.util.Collections.unmodifiableList(sourceFileDescriptors_);
        } else {
          return sourceFileDescriptorsBuilder_.getMessageList();
        }
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public int getSourceFileDescriptorsCount() {
        if (sourceFileDescriptorsBuilder_ == null) {
          return sourceFileDescriptors_.size();
        } else {
          return sourceFileDescriptorsBuilder_.getCount();
        }
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public com.google.protobuf.DescriptorProtos.FileDescriptorProto getSourceFileDescriptors(int index) {
        if (sourceFileDescriptorsBuilder_ == null) {
          return sourceFileDescriptors_.get(index);
        } else {
          return sourceFileDescriptorsBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public Builder setSourceFileDescriptors(
          int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
        if (sourceFileDescriptorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourceFileDescriptorsIsMutable();
          sourceFileDescriptors_.set(index, value);
          onChanged();
        } else {
          sourceFileDescriptorsBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public Builder setSourceFileDescriptors(
          int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
        if (sourceFileDescriptorsBuilder_ == null) {
          ensureSourceFileDescriptorsIsMutable();
          sourceFileDescriptors_.set(index, builderForValue.build());
          onChanged();
        } else {
          sourceFileDescriptorsBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public Builder addSourceFileDescriptors(com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
        if (sourceFileDescriptorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourceFileDescriptorsIsMutable();
          sourceFileDescriptors_.add(value);
          onChanged();
        } else {
          sourceFileDescriptorsBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public Builder addSourceFileDescriptors(
          int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto value) {
        if (sourceFileDescriptorsBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureSourceFileDescriptorsIsMutable();
          sourceFileDescriptors_.add(index, value);
          onChanged();
        } else {
          sourceFileDescriptorsBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public Builder addSourceFileDescriptors(
          com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
        if (sourceFileDescriptorsBuilder_ == null) {
          ensureSourceFileDescriptorsIsMutable();
          sourceFileDescriptors_.add(builderForValue.build());
          onChanged();
        } else {
          sourceFileDescriptorsBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public Builder addSourceFileDescriptors(
          int index, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder builderForValue) {
        if (sourceFileDescriptorsBuilder_ == null) {
          ensureSourceFileDescriptorsIsMutable();
          sourceFileDescriptors_.add(index, builderForValue.build());
          onChanged();
        } else {
          sourceFileDescriptorsBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public Builder addAllSourceFileDescriptors(
          java.lang.Iterable values) {
        if (sourceFileDescriptorsBuilder_ == null) {
          ensureSourceFileDescriptorsIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, sourceFileDescriptors_);
          onChanged();
        } else {
          sourceFileDescriptorsBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public Builder clearSourceFileDescriptors() {
        if (sourceFileDescriptorsBuilder_ == null) {
          sourceFileDescriptors_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000008);
          onChanged();
        } else {
          sourceFileDescriptorsBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public Builder removeSourceFileDescriptors(int index) {
        if (sourceFileDescriptorsBuilder_ == null) {
          ensureSourceFileDescriptorsIsMutable();
          sourceFileDescriptors_.remove(index);
          onChanged();
        } else {
          sourceFileDescriptorsBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder getSourceFileDescriptorsBuilder(
          int index) {
        return getSourceFileDescriptorsFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder getSourceFileDescriptorsOrBuilder(
          int index) {
        if (sourceFileDescriptorsBuilder_ == null) {
          return sourceFileDescriptors_.get(index);  } else {
          return sourceFileDescriptorsBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public java.util.List 
           getSourceFileDescriptorsOrBuilderList() {
        if (sourceFileDescriptorsBuilder_ != null) {
          return sourceFileDescriptorsBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(sourceFileDescriptors_);
        }
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder addSourceFileDescriptorsBuilder() {
        return getSourceFileDescriptorsFieldBuilder().addBuilder(
            com.google.protobuf.DescriptorProtos.FileDescriptorProto.getDefaultInstance());
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder addSourceFileDescriptorsBuilder(
          int index) {
        return getSourceFileDescriptorsFieldBuilder().addBuilder(
            index, com.google.protobuf.DescriptorProtos.FileDescriptorProto.getDefaultInstance());
      }
      /**
       * repeated .google.protobuf.FileDescriptorProto source_file_descriptors = 17 [json_name = "sourceFileDescriptors"];
       */
      public java.util.List 
           getSourceFileDescriptorsBuilderList() {
        return getSourceFileDescriptorsFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.google.protobuf.DescriptorProtos.FileDescriptorProto, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder> 
          getSourceFileDescriptorsFieldBuilder() {
        if (sourceFileDescriptorsBuilder_ == null) {
          sourceFileDescriptorsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.google.protobuf.DescriptorProtos.FileDescriptorProto, com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder, com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder>(
                  sourceFileDescriptors_,
                  ((bitField0_ & 0x00000008) != 0),
                  getParentForChildren(),
                  isClean());
          sourceFileDescriptors_ = null;
        }
        return sourceFileDescriptorsBuilder_;
      }

      private com.google.protobuf.compiler.PluginProtos.Version compilerVersion_;
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.compiler.PluginProtos.Version, com.google.protobuf.compiler.PluginProtos.Version.Builder, com.google.protobuf.compiler.PluginProtos.VersionOrBuilder> compilerVersionBuilder_;
      /**
       * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
       * @return Whether the compilerVersion field is set.
       */
      public boolean hasCompilerVersion() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
       * @return The compilerVersion.
       */
      public com.google.protobuf.compiler.PluginProtos.Version getCompilerVersion() {
        if (compilerVersionBuilder_ == null) {
          return compilerVersion_ == null ? com.google.protobuf.compiler.PluginProtos.Version.getDefaultInstance() : compilerVersion_;
        } else {
          return compilerVersionBuilder_.getMessage();
        }
      }
      /**
       * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
       */
      public Builder setCompilerVersion(com.google.protobuf.compiler.PluginProtos.Version value) {
        if (compilerVersionBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          compilerVersion_ = value;
        } else {
          compilerVersionBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
       */
      public Builder setCompilerVersion(
          com.google.protobuf.compiler.PluginProtos.Version.Builder builderForValue) {
        if (compilerVersionBuilder_ == null) {
          compilerVersion_ = builderForValue.build();
        } else {
          compilerVersionBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000010;
        onChanged();
        return this;
      }
      /**
       * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
       */
      public Builder mergeCompilerVersion(com.google.protobuf.compiler.PluginProtos.Version value) {
        if (compilerVersionBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0) &&
            compilerVersion_ != null &&
            compilerVersion_ != com.google.protobuf.compiler.PluginProtos.Version.getDefaultInstance()) {
            getCompilerVersionBuilder().mergeFrom(value);
          } else {
            compilerVersion_ = value;
          }
        } else {
          compilerVersionBuilder_.mergeFrom(value);
        }
        if (compilerVersion_ != null) {
          bitField0_ |= 0x00000010;
          onChanged();
        }
        return this;
      }
      /**
       * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
       */
      public Builder clearCompilerVersion() {
        bitField0_ = (bitField0_ & ~0x00000010);
        compilerVersion_ = null;
        if (compilerVersionBuilder_ != null) {
          compilerVersionBuilder_.dispose();
          compilerVersionBuilder_ = null;
        }
        onChanged();
        return this;
      }
      /**
       * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
       */
      public com.google.protobuf.compiler.PluginProtos.Version.Builder getCompilerVersionBuilder() {
        bitField0_ |= 0x00000010;
        onChanged();
        return getCompilerVersionFieldBuilder().getBuilder();
      }
      /**
       * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
       */
      public com.google.protobuf.compiler.PluginProtos.VersionOrBuilder getCompilerVersionOrBuilder() {
        if (compilerVersionBuilder_ != null) {
          return compilerVersionBuilder_.getMessageOrBuilder();
        } else {
          return compilerVersion_ == null ?
              com.google.protobuf.compiler.PluginProtos.Version.getDefaultInstance() : compilerVersion_;
        }
      }
      /**
       * optional .google.protobuf.compiler.Version compiler_version = 3 [json_name = "compilerVersion"];
       */
      private com.google.protobuf.SingleFieldBuilder<
          com.google.protobuf.compiler.PluginProtos.Version, com.google.protobuf.compiler.PluginProtos.Version.Builder, com.google.protobuf.compiler.PluginProtos.VersionOrBuilder> 
          getCompilerVersionFieldBuilder() {
        if (compilerVersionBuilder_ == null) {
          compilerVersionBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              com.google.protobuf.compiler.PluginProtos.Version, com.google.protobuf.compiler.PluginProtos.Version.Builder, com.google.protobuf.compiler.PluginProtos.VersionOrBuilder>(
                  getCompilerVersion(),
                  getParentForChildren(),
                  isClean());
          compilerVersion_ = null;
        }
        return compilerVersionBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:google.protobuf.compiler.CodeGeneratorRequest)
    }

    // @@protoc_insertion_point(class_scope:google.protobuf.compiler.CodeGeneratorRequest)
    private static final com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest();
    }

    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  public interface CodeGeneratorResponseOrBuilder extends
      // @@protoc_insertion_point(interface_extends:google.protobuf.compiler.CodeGeneratorResponse)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string error = 1 [json_name = "error"];
     * @return Whether the error field is set.
     */
    boolean hasError();
    /**
     * optional string error = 1 [json_name = "error"];
     * @return The error.
     */
    java.lang.String getError();
    /**
     * optional string error = 1 [json_name = "error"];
     * @return The bytes for error.
     */
    com.google.protobuf.ByteString
        getErrorBytes();

    /**
     * optional uint64 supported_features = 2 [json_name = "supportedFeatures"];
     * @return Whether the supportedFeatures field is set.
     */
    boolean hasSupportedFeatures();
    /**
     * optional uint64 supported_features = 2 [json_name = "supportedFeatures"];
     * @return The supportedFeatures.
     */
    long getSupportedFeatures();

    /**
     * optional int32 minimum_edition = 3 [json_name = "minimumEdition"];
     * @return Whether the minimumEdition field is set.
     */
    boolean hasMinimumEdition();
    /**
     * optional int32 minimum_edition = 3 [json_name = "minimumEdition"];
     * @return The minimumEdition.
     */
    int getMinimumEdition();

    /**
     * optional int32 maximum_edition = 4 [json_name = "maximumEdition"];
     * @return Whether the maximumEdition field is set.
     */
    boolean hasMaximumEdition();
    /**
     * optional int32 maximum_edition = 4 [json_name = "maximumEdition"];
     * @return The maximumEdition.
     */
    int getMaximumEdition();

    /**
     * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
     */
    java.util.List 
        getFileList();
    /**
     * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
     */
    com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getFile(int index);
    /**
     * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
     */
    int getFileCount();
    /**
     * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
     */
    java.util.List 
        getFileOrBuilderList();
    /**
     * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
     */
    com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder getFileOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code google.protobuf.compiler.CodeGeneratorResponse}
   */
  public static final class CodeGeneratorResponse extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:google.protobuf.compiler.CodeGeneratorResponse)
      CodeGeneratorResponseOrBuilder {
  private static final long serialVersionUID = 0L;
    static {
      com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 0,
        /* suffix= */ "",
        CodeGeneratorResponse.class.getName());
    }
    // Use CodeGeneratorResponse.newBuilder() to construct.
    private CodeGeneratorResponse(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
    }
    private CodeGeneratorResponse() {
      error_ = "";
      file_ = java.util.Collections.emptyList();
    }

    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorResponse_descriptor;
    }

    @java.lang.Override
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorResponse_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.class, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder.class);
    }

    /**
     * Protobuf enum {@code google.protobuf.compiler.CodeGeneratorResponse.Feature}
     */
    public enum Feature
        implements com.google.protobuf.ProtocolMessageEnum {
      /**
       * FEATURE_NONE = 0;
       */
      FEATURE_NONE(0),
      /**
       * FEATURE_PROTO3_OPTIONAL = 1;
       */
      FEATURE_PROTO3_OPTIONAL(1),
      /**
       * FEATURE_SUPPORTS_EDITIONS = 2;
       */
      FEATURE_SUPPORTS_EDITIONS(2),
      ;

      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 0,
          /* suffix= */ "",
          Feature.class.getName());
      }
      /**
       * FEATURE_NONE = 0;
       */
      public static final int FEATURE_NONE_VALUE = 0;
      /**
       * FEATURE_PROTO3_OPTIONAL = 1;
       */
      public static final int FEATURE_PROTO3_OPTIONAL_VALUE = 1;
      /**
       * FEATURE_SUPPORTS_EDITIONS = 2;
       */
      public static final int FEATURE_SUPPORTS_EDITIONS_VALUE = 2;


      public final int getNumber() {
        return value;
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       * @deprecated Use {@link #forNumber(int)} instead.
       */
      @java.lang.Deprecated
      public static Feature valueOf(int value) {
        return forNumber(value);
      }

      /**
       * @param value The numeric wire value of the corresponding enum entry.
       * @return The enum associated with the given numeric wire value.
       */
      public static Feature forNumber(int value) {
        switch (value) {
          case 0: return FEATURE_NONE;
          case 1: return FEATURE_PROTO3_OPTIONAL;
          case 2: return FEATURE_SUPPORTS_EDITIONS;
          default: return null;
        }
      }

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

      public final com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.getDescriptor().getEnumTypes().get(0);
      }

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

      public static Feature valueOf(
          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
        if (desc.getType() != getDescriptor()) {
          throw new java.lang.IllegalArgumentException(
            "EnumValueDescriptor is not for this type.");
        }
        return VALUES[desc.getIndex()];
      }

      private final int value;

      private Feature(int value) {
        this.value = value;
      }

      // @@protoc_insertion_point(enum_scope:google.protobuf.compiler.CodeGeneratorResponse.Feature)
    }

    public interface FileOrBuilder extends
        // @@protoc_insertion_point(interface_extends:google.protobuf.compiler.CodeGeneratorResponse.File)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional string name = 1 [json_name = "name"];
       * @return Whether the name field is set.
       */
      boolean hasName();
      /**
       * optional string name = 1 [json_name = "name"];
       * @return The name.
       */
      java.lang.String getName();
      /**
       * optional string name = 1 [json_name = "name"];
       * @return The bytes for name.
       */
      com.google.protobuf.ByteString
          getNameBytes();

      /**
       * optional string insertion_point = 2 [json_name = "insertionPoint"];
       * @return Whether the insertionPoint field is set.
       */
      boolean hasInsertionPoint();
      /**
       * optional string insertion_point = 2 [json_name = "insertionPoint"];
       * @return The insertionPoint.
       */
      java.lang.String getInsertionPoint();
      /**
       * optional string insertion_point = 2 [json_name = "insertionPoint"];
       * @return The bytes for insertionPoint.
       */
      com.google.protobuf.ByteString
          getInsertionPointBytes();

      /**
       * optional string content = 15 [json_name = "content"];
       * @return Whether the content field is set.
       */
      boolean hasContent();
      /**
       * optional string content = 15 [json_name = "content"];
       * @return The content.
       */
      java.lang.String getContent();
      /**
       * optional string content = 15 [json_name = "content"];
       * @return The bytes for content.
       */
      com.google.protobuf.ByteString
          getContentBytes();

      /**
       * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
       * @return Whether the generatedCodeInfo field is set.
       */
      boolean hasGeneratedCodeInfo();
      /**
       * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
       * @return The generatedCodeInfo.
       */
      com.google.protobuf.DescriptorProtos.GeneratedCodeInfo getGeneratedCodeInfo();
      /**
       * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
       */
      com.google.protobuf.DescriptorProtos.GeneratedCodeInfoOrBuilder getGeneratedCodeInfoOrBuilder();
    }
    /**
     * Protobuf type {@code google.protobuf.compiler.CodeGeneratorResponse.File}
     */
    public static final class File extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:google.protobuf.compiler.CodeGeneratorResponse.File)
        FileOrBuilder {
    private static final long serialVersionUID = 0L;
      static {
        com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 0,
          /* suffix= */ "",
          File.class.getName());
      }
      // Use File.newBuilder() to construct.
      private File(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
      }
      private File() {
        name_ = "";
        insertionPoint_ = "";
        content_ = "";
      }

      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorResponse_File_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorResponse_File_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.class, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder.class);
      }

      private int bitField0_;
      public static final int NAME_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object name_ = "";
      /**
       * optional string name = 1 [json_name = "name"];
       * @return Whether the name field is set.
       */
      @java.lang.Override
      public boolean hasName() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional string name = 1 [json_name = "name"];
       * @return The name.
       */
      @java.lang.Override
      public java.lang.String getName() {
        java.lang.Object ref = name_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            name_ = s;
          }
          return s;
        }
      }
      /**
       * optional string name = 1 [json_name = "name"];
       * @return The bytes for name.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getNameBytes() {
        java.lang.Object ref = name_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          name_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int INSERTION_POINT_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private volatile java.lang.Object insertionPoint_ = "";
      /**
       * optional string insertion_point = 2 [json_name = "insertionPoint"];
       * @return Whether the insertionPoint field is set.
       */
      @java.lang.Override
      public boolean hasInsertionPoint() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional string insertion_point = 2 [json_name = "insertionPoint"];
       * @return The insertionPoint.
       */
      @java.lang.Override
      public java.lang.String getInsertionPoint() {
        java.lang.Object ref = insertionPoint_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            insertionPoint_ = s;
          }
          return s;
        }
      }
      /**
       * optional string insertion_point = 2 [json_name = "insertionPoint"];
       * @return The bytes for insertionPoint.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getInsertionPointBytes() {
        java.lang.Object ref = insertionPoint_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          insertionPoint_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int CONTENT_FIELD_NUMBER = 15;
      @SuppressWarnings("serial")
      private volatile java.lang.Object content_ = "";
      /**
       * optional string content = 15 [json_name = "content"];
       * @return Whether the content field is set.
       */
      @java.lang.Override
      public boolean hasContent() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional string content = 15 [json_name = "content"];
       * @return The content.
       */
      @java.lang.Override
      public java.lang.String getContent() {
        java.lang.Object ref = content_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            content_ = s;
          }
          return s;
        }
      }
      /**
       * optional string content = 15 [json_name = "content"];
       * @return The bytes for content.
       */
      @java.lang.Override
      public com.google.protobuf.ByteString
          getContentBytes() {
        java.lang.Object ref = content_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          content_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int GENERATED_CODE_INFO_FIELD_NUMBER = 16;
      private com.google.protobuf.DescriptorProtos.GeneratedCodeInfo generatedCodeInfo_;
      /**
       * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
       * @return Whether the generatedCodeInfo field is set.
       */
      @java.lang.Override
      public boolean hasGeneratedCodeInfo() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
       * @return The generatedCodeInfo.
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.GeneratedCodeInfo getGeneratedCodeInfo() {
        return generatedCodeInfo_ == null ? com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.getDefaultInstance() : generatedCodeInfo_;
      }
      /**
       * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
       */
      @java.lang.Override
      public com.google.protobuf.DescriptorProtos.GeneratedCodeInfoOrBuilder getGeneratedCodeInfoOrBuilder() {
        return generatedCodeInfo_ == null ? com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.getDefaultInstance() : generatedCodeInfo_;
      }

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

        memoizedIsInitialized = 1;
        return true;
      }

      @java.lang.Override
      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          com.google.protobuf.GeneratedMessage.writeString(output, 1, name_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          com.google.protobuf.GeneratedMessage.writeString(output, 2, insertionPoint_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          com.google.protobuf.GeneratedMessage.writeString(output, 15, content_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          output.writeMessage(16, getGeneratedCodeInfo());
        }
        getUnknownFields().writeTo(output);
      }

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

        size = 0;
        if (((bitField0_ & 0x00000001) != 0)) {
          size += com.google.protobuf.GeneratedMessage.computeStringSize(1, name_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.google.protobuf.GeneratedMessage.computeStringSize(2, insertionPoint_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += com.google.protobuf.GeneratedMessage.computeStringSize(15, content_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(16, getGeneratedCodeInfo());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSize = size;
        return size;
      }

      @java.lang.Override
      public boolean equals(final java.lang.Object obj) {
        if (obj == this) {
         return true;
        }
        if (!(obj instanceof com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File)) {
          return super.equals(obj);
        }
        com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File other = (com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File) obj;

        if (hasName() != other.hasName()) return false;
        if (hasName()) {
          if (!getName()
              .equals(other.getName())) return false;
        }
        if (hasInsertionPoint() != other.hasInsertionPoint()) return false;
        if (hasInsertionPoint()) {
          if (!getInsertionPoint()
              .equals(other.getInsertionPoint())) return false;
        }
        if (hasContent() != other.hasContent()) return false;
        if (hasContent()) {
          if (!getContent()
              .equals(other.getContent())) return false;
        }
        if (hasGeneratedCodeInfo() != other.hasGeneratedCodeInfo()) return false;
        if (hasGeneratedCodeInfo()) {
          if (!getGeneratedCodeInfo()
              .equals(other.getGeneratedCodeInfo())) return false;
        }
        if (!getUnknownFields().equals(other.getUnknownFields())) return false;
        return true;
      }

      @java.lang.Override
      public int hashCode() {
        if (memoizedHashCode != 0) {
          return memoizedHashCode;
        }
        int hash = 41;
        hash = (19 * hash) + getDescriptor().hashCode();
        if (hasName()) {
          hash = (37 * hash) + NAME_FIELD_NUMBER;
          hash = (53 * hash) + getName().hashCode();
        }
        if (hasInsertionPoint()) {
          hash = (37 * hash) + INSERTION_POINT_FIELD_NUMBER;
          hash = (53 * hash) + getInsertionPoint().hashCode();
        }
        if (hasContent()) {
          hash = (37 * hash) + CONTENT_FIELD_NUMBER;
          hash = (53 * hash) + getContent().hashCode();
        }
        if (hasGeneratedCodeInfo()) {
          hash = (37 * hash) + GENERATED_CODE_INFO_FIELD_NUMBER;
          hash = (53 * hash) + getGeneratedCodeInfo().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }

      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(
          java.nio.ByteBuffer data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(
          java.nio.ByteBuffer data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input);
      }

      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }

      @java.lang.Override
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder() {
        return DEFAULT_INSTANCE.toBuilder();
      }
      public static Builder newBuilder(com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File prototype) {
        return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
      }
      @java.lang.Override
      public Builder toBuilder() {
        return this == DEFAULT_INSTANCE
            ? new Builder() : new Builder().mergeFrom(this);
      }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code google.protobuf.compiler.CodeGeneratorResponse.File}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:google.protobuf.compiler.CodeGeneratorResponse.File)
          com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorResponse_File_descriptor;
        }

        @java.lang.Override
        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorResponse_File_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.class, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder.class);
        }

        // Construct using com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage
                  .alwaysUseFieldBuilders) {
            getGeneratedCodeInfoFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          name_ = "";
          insertionPoint_ = "";
          content_ = "";
          generatedCodeInfo_ = null;
          if (generatedCodeInfoBuilder_ != null) {
            generatedCodeInfoBuilder_.dispose();
            generatedCodeInfoBuilder_ = null;
          }
          return this;
        }

        @java.lang.Override
        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorResponse_File_descriptor;
        }

        @java.lang.Override
        public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getDefaultInstanceForType() {
          return com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.getDefaultInstance();
        }

        @java.lang.Override
        public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File build() {
          com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        @java.lang.Override
        public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File buildPartial() {
          com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File result = new com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }

        private void buildPartial0(com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.name_ = name_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.insertionPoint_ = insertionPoint_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.content_ = content_;
            to_bitField0_ |= 0x00000004;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.generatedCodeInfo_ = generatedCodeInfoBuilder_ == null
                ? generatedCodeInfo_
                : generatedCodeInfoBuilder_.build();
            to_bitField0_ |= 0x00000008;
          }
          result.bitField0_ |= to_bitField0_;
        }

        @java.lang.Override
        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File) {
            return mergeFrom((com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File other) {
          if (other == com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.getDefaultInstance()) return this;
          if (other.hasName()) {
            name_ = other.name_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasInsertionPoint()) {
            insertionPoint_ = other.insertionPoint_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          if (other.hasContent()) {
            content_ = other.content_;
            bitField0_ |= 0x00000004;
            onChanged();
          }
          if (other.hasGeneratedCodeInfo()) {
            mergeGeneratedCodeInfo(other.getGeneratedCodeInfo());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }

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

        @java.lang.Override
        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          if (extensionRegistry == null) {
            throw new java.lang.NullPointerException();
          }
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                case 10: {
                  name_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 18: {
                  insertionPoint_ = input.readBytes();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                case 122: {
                  content_ = input.readBytes();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 122
                case 130: {
                  input.readMessage(
                      getGeneratedCodeInfoFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000008;
                  break;
                } // case 130
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;

        private java.lang.Object name_ = "";
        /**
         * optional string name = 1 [json_name = "name"];
         * @return Whether the name field is set.
         */
        public boolean hasName() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * optional string name = 1 [json_name = "name"];
         * @return The name.
         */
        public java.lang.String getName() {
          java.lang.Object ref = name_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              name_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string name = 1 [json_name = "name"];
         * @return The bytes for name.
         */
        public com.google.protobuf.ByteString
            getNameBytes() {
          java.lang.Object ref = name_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            name_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string name = 1 [json_name = "name"];
         * @param value The name to set.
         * @return This builder for chaining.
         */
        public Builder setName(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          name_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * optional string name = 1 [json_name = "name"];
         * @return This builder for chaining.
         */
        public Builder clearName() {
          name_ = getDefaultInstance().getName();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * optional string name = 1 [json_name = "name"];
         * @param value The bytes for name to set.
         * @return This builder for chaining.
         */
        public Builder setNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          name_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }

        private java.lang.Object insertionPoint_ = "";
        /**
         * optional string insertion_point = 2 [json_name = "insertionPoint"];
         * @return Whether the insertionPoint field is set.
         */
        public boolean hasInsertionPoint() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * optional string insertion_point = 2 [json_name = "insertionPoint"];
         * @return The insertionPoint.
         */
        public java.lang.String getInsertionPoint() {
          java.lang.Object ref = insertionPoint_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              insertionPoint_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string insertion_point = 2 [json_name = "insertionPoint"];
         * @return The bytes for insertionPoint.
         */
        public com.google.protobuf.ByteString
            getInsertionPointBytes() {
          java.lang.Object ref = insertionPoint_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            insertionPoint_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string insertion_point = 2 [json_name = "insertionPoint"];
         * @param value The insertionPoint to set.
         * @return This builder for chaining.
         */
        public Builder setInsertionPoint(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          insertionPoint_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * optional string insertion_point = 2 [json_name = "insertionPoint"];
         * @return This builder for chaining.
         */
        public Builder clearInsertionPoint() {
          insertionPoint_ = getDefaultInstance().getInsertionPoint();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }
        /**
         * optional string insertion_point = 2 [json_name = "insertionPoint"];
         * @param value The bytes for insertionPoint to set.
         * @return This builder for chaining.
         */
        public Builder setInsertionPointBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          insertionPoint_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }

        private java.lang.Object content_ = "";
        /**
         * optional string content = 15 [json_name = "content"];
         * @return Whether the content field is set.
         */
        public boolean hasContent() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * optional string content = 15 [json_name = "content"];
         * @return The content.
         */
        public java.lang.String getContent() {
          java.lang.Object ref = content_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              content_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string content = 15 [json_name = "content"];
         * @return The bytes for content.
         */
        public com.google.protobuf.ByteString
            getContentBytes() {
          java.lang.Object ref = content_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            content_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string content = 15 [json_name = "content"];
         * @param value The content to set.
         * @return This builder for chaining.
         */
        public Builder setContent(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          content_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * optional string content = 15 [json_name = "content"];
         * @return This builder for chaining.
         */
        public Builder clearContent() {
          content_ = getDefaultInstance().getContent();
          bitField0_ = (bitField0_ & ~0x00000004);
          onChanged();
          return this;
        }
        /**
         * optional string content = 15 [json_name = "content"];
         * @param value The bytes for content to set.
         * @return This builder for chaining.
         */
        public Builder setContentBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          content_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }

        private com.google.protobuf.DescriptorProtos.GeneratedCodeInfo generatedCodeInfo_;
        private com.google.protobuf.SingleFieldBuilder<
            com.google.protobuf.DescriptorProtos.GeneratedCodeInfo, com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder, com.google.protobuf.DescriptorProtos.GeneratedCodeInfoOrBuilder> generatedCodeInfoBuilder_;
        /**
         * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
         * @return Whether the generatedCodeInfo field is set.
         */
        public boolean hasGeneratedCodeInfo() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
         * @return The generatedCodeInfo.
         */
        public com.google.protobuf.DescriptorProtos.GeneratedCodeInfo getGeneratedCodeInfo() {
          if (generatedCodeInfoBuilder_ == null) {
            return generatedCodeInfo_ == null ? com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.getDefaultInstance() : generatedCodeInfo_;
          } else {
            return generatedCodeInfoBuilder_.getMessage();
          }
        }
        /**
         * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
         */
        public Builder setGeneratedCodeInfo(com.google.protobuf.DescriptorProtos.GeneratedCodeInfo value) {
          if (generatedCodeInfoBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            generatedCodeInfo_ = value;
          } else {
            generatedCodeInfoBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
         */
        public Builder setGeneratedCodeInfo(
            com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder builderForValue) {
          if (generatedCodeInfoBuilder_ == null) {
            generatedCodeInfo_ = builderForValue.build();
          } else {
            generatedCodeInfoBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
         */
        public Builder mergeGeneratedCodeInfo(com.google.protobuf.DescriptorProtos.GeneratedCodeInfo value) {
          if (generatedCodeInfoBuilder_ == null) {
            if (((bitField0_ & 0x00000008) != 0) &&
              generatedCodeInfo_ != null &&
              generatedCodeInfo_ != com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.getDefaultInstance()) {
              getGeneratedCodeInfoBuilder().mergeFrom(value);
            } else {
              generatedCodeInfo_ = value;
            }
          } else {
            generatedCodeInfoBuilder_.mergeFrom(value);
          }
          if (generatedCodeInfo_ != null) {
            bitField0_ |= 0x00000008;
            onChanged();
          }
          return this;
        }
        /**
         * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
         */
        public Builder clearGeneratedCodeInfo() {
          bitField0_ = (bitField0_ & ~0x00000008);
          generatedCodeInfo_ = null;
          if (generatedCodeInfoBuilder_ != null) {
            generatedCodeInfoBuilder_.dispose();
            generatedCodeInfoBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
         */
        public com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder getGeneratedCodeInfoBuilder() {
          bitField0_ |= 0x00000008;
          onChanged();
          return getGeneratedCodeInfoFieldBuilder().getBuilder();
        }
        /**
         * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
         */
        public com.google.protobuf.DescriptorProtos.GeneratedCodeInfoOrBuilder getGeneratedCodeInfoOrBuilder() {
          if (generatedCodeInfoBuilder_ != null) {
            return generatedCodeInfoBuilder_.getMessageOrBuilder();
          } else {
            return generatedCodeInfo_ == null ?
                com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.getDefaultInstance() : generatedCodeInfo_;
          }
        }
        /**
         * optional .google.protobuf.GeneratedCodeInfo generated_code_info = 16 [json_name = "generatedCodeInfo"];
         */
        private com.google.protobuf.SingleFieldBuilder<
            com.google.protobuf.DescriptorProtos.GeneratedCodeInfo, com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder, com.google.protobuf.DescriptorProtos.GeneratedCodeInfoOrBuilder> 
            getGeneratedCodeInfoFieldBuilder() {
          if (generatedCodeInfoBuilder_ == null) {
            generatedCodeInfoBuilder_ = new com.google.protobuf.SingleFieldBuilder<
                com.google.protobuf.DescriptorProtos.GeneratedCodeInfo, com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder, com.google.protobuf.DescriptorProtos.GeneratedCodeInfoOrBuilder>(
                    getGeneratedCodeInfo(),
                    getParentForChildren(),
                    isClean());
            generatedCodeInfo_ = null;
          }
          return generatedCodeInfoBuilder_;
        }

        // @@protoc_insertion_point(builder_scope:google.protobuf.compiler.CodeGeneratorResponse.File)
      }

      // @@protoc_insertion_point(class_scope:google.protobuf.compiler.CodeGeneratorResponse.File)
      private static final com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File();
      }

      public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }

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

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

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

      @java.lang.Override
      public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }

    }

    private int bitField0_;
    public static final int ERROR_FIELD_NUMBER = 1;
    @SuppressWarnings("serial")
    private volatile java.lang.Object error_ = "";
    /**
     * optional string error = 1 [json_name = "error"];
     * @return Whether the error field is set.
     */
    @java.lang.Override
    public boolean hasError() {
      return ((bitField0_ & 0x00000001) != 0);
    }
    /**
     * optional string error = 1 [json_name = "error"];
     * @return The error.
     */
    @java.lang.Override
    public java.lang.String getError() {
      java.lang.Object ref = error_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          error_ = s;
        }
        return s;
      }
    }
    /**
     * optional string error = 1 [json_name = "error"];
     * @return The bytes for error.
     */
    @java.lang.Override
    public com.google.protobuf.ByteString
        getErrorBytes() {
      java.lang.Object ref = error_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        error_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int SUPPORTED_FEATURES_FIELD_NUMBER = 2;
    private long supportedFeatures_ = 0L;
    /**
     * optional uint64 supported_features = 2 [json_name = "supportedFeatures"];
     * @return Whether the supportedFeatures field is set.
     */
    @java.lang.Override
    public boolean hasSupportedFeatures() {
      return ((bitField0_ & 0x00000002) != 0);
    }
    /**
     * optional uint64 supported_features = 2 [json_name = "supportedFeatures"];
     * @return The supportedFeatures.
     */
    @java.lang.Override
    public long getSupportedFeatures() {
      return supportedFeatures_;
    }

    public static final int MINIMUM_EDITION_FIELD_NUMBER = 3;
    private int minimumEdition_ = 0;
    /**
     * optional int32 minimum_edition = 3 [json_name = "minimumEdition"];
     * @return Whether the minimumEdition field is set.
     */
    @java.lang.Override
    public boolean hasMinimumEdition() {
      return ((bitField0_ & 0x00000004) != 0);
    }
    /**
     * optional int32 minimum_edition = 3 [json_name = "minimumEdition"];
     * @return The minimumEdition.
     */
    @java.lang.Override
    public int getMinimumEdition() {
      return minimumEdition_;
    }

    public static final int MAXIMUM_EDITION_FIELD_NUMBER = 4;
    private int maximumEdition_ = 0;
    /**
     * optional int32 maximum_edition = 4 [json_name = "maximumEdition"];
     * @return Whether the maximumEdition field is set.
     */
    @java.lang.Override
    public boolean hasMaximumEdition() {
      return ((bitField0_ & 0x00000008) != 0);
    }
    /**
     * optional int32 maximum_edition = 4 [json_name = "maximumEdition"];
     * @return The maximumEdition.
     */
    @java.lang.Override
    public int getMaximumEdition() {
      return maximumEdition_;
    }

    public static final int FILE_FIELD_NUMBER = 15;
    @SuppressWarnings("serial")
    private java.util.List file_;
    /**
     * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
     */
    @java.lang.Override
    public java.util.List getFileList() {
      return file_;
    }
    /**
     * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
     */
    @java.lang.Override
    public java.util.List 
        getFileOrBuilderList() {
      return file_;
    }
    /**
     * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
     */
    @java.lang.Override
    public int getFileCount() {
      return file_.size();
    }
    /**
     * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
     */
    @java.lang.Override
    public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getFile(int index) {
      return file_.get(index);
    }
    /**
     * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
     */
    @java.lang.Override
    public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder getFileOrBuilder(
        int index) {
      return file_.get(index);
    }

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

      memoizedIsInitialized = 1;
      return true;
    }

    @java.lang.Override
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      if (((bitField0_ & 0x00000001) != 0)) {
        com.google.protobuf.GeneratedMessage.writeString(output, 1, error_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        output.writeUInt64(2, supportedFeatures_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        output.writeInt32(3, minimumEdition_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        output.writeInt32(4, maximumEdition_);
      }
      for (int i = 0; i < file_.size(); i++) {
        output.writeMessage(15, file_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

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

      size = 0;
      if (((bitField0_ & 0x00000001) != 0)) {
        size += com.google.protobuf.GeneratedMessage.computeStringSize(1, error_);
      }
      if (((bitField0_ & 0x00000002) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeUInt64Size(2, supportedFeatures_);
      }
      if (((bitField0_ & 0x00000004) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, minimumEdition_);
      }
      if (((bitField0_ & 0x00000008) != 0)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, maximumEdition_);
      }
      for (int i = 0; i < file_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(15, file_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSize = size;
      return size;
    }

    @java.lang.Override
    public boolean equals(final java.lang.Object obj) {
      if (obj == this) {
       return true;
      }
      if (!(obj instanceof com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse)) {
        return super.equals(obj);
      }
      com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse other = (com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse) obj;

      if (hasError() != other.hasError()) return false;
      if (hasError()) {
        if (!getError()
            .equals(other.getError())) return false;
      }
      if (hasSupportedFeatures() != other.hasSupportedFeatures()) return false;
      if (hasSupportedFeatures()) {
        if (getSupportedFeatures()
            != other.getSupportedFeatures()) return false;
      }
      if (hasMinimumEdition() != other.hasMinimumEdition()) return false;
      if (hasMinimumEdition()) {
        if (getMinimumEdition()
            != other.getMinimumEdition()) return false;
      }
      if (hasMaximumEdition() != other.hasMaximumEdition()) return false;
      if (hasMaximumEdition()) {
        if (getMaximumEdition()
            != other.getMaximumEdition()) return false;
      }
      if (!getFileList()
          .equals(other.getFileList())) return false;
      if (!getUnknownFields().equals(other.getUnknownFields())) return false;
      return true;
    }

    @java.lang.Override
    public int hashCode() {
      if (memoizedHashCode != 0) {
        return memoizedHashCode;
      }
      int hash = 41;
      hash = (19 * hash) + getDescriptor().hashCode();
      if (hasError()) {
        hash = (37 * hash) + ERROR_FIELD_NUMBER;
        hash = (53 * hash) + getError().hashCode();
      }
      if (hasSupportedFeatures()) {
        hash = (37 * hash) + SUPPORTED_FEATURES_FIELD_NUMBER;
        hash = (53 * hash) + com.google.protobuf.Internal.hashLong(
            getSupportedFeatures());
      }
      if (hasMinimumEdition()) {
        hash = (37 * hash) + MINIMUM_EDITION_FIELD_NUMBER;
        hash = (53 * hash) + getMinimumEdition();
      }
      if (hasMaximumEdition()) {
        hash = (37 * hash) + MAXIMUM_EDITION_FIELD_NUMBER;
        hash = (53 * hash) + getMaximumEdition();
      }
      if (getFileCount() > 0) {
        hash = (37 * hash) + FILE_FIELD_NUMBER;
        hash = (53 * hash) + getFileList().hashCode();
      }
      hash = (29 * hash) + getUnknownFields().hashCode();
      memoizedHashCode = hash;
      return hash;
    }

    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(
        java.nio.ByteBuffer data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(
        java.nio.ByteBuffer data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input);
    }

    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input);
    }
    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return com.google.protobuf.GeneratedMessage
          .parseWithIOException(PARSER, input, extensionRegistry);
    }

    @java.lang.Override
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder() {
      return DEFAULT_INSTANCE.toBuilder();
    }
    public static Builder newBuilder(com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse prototype) {
      return DEFAULT_INSTANCE.toBuilder().mergeFrom(prototype);
    }
    @java.lang.Override
    public Builder toBuilder() {
      return this == DEFAULT_INSTANCE
          ? new Builder() : new Builder().mergeFrom(this);
    }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code google.protobuf.compiler.CodeGeneratorResponse}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:google.protobuf.compiler.CodeGeneratorResponse)
        com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorResponse_descriptor;
      }

      @java.lang.Override
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorResponse_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.class, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder.class);
      }

      // Construct using com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.newBuilder()
      private Builder() {

      }

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

      }
      @java.lang.Override
      public Builder clear() {
        super.clear();
        bitField0_ = 0;
        error_ = "";
        supportedFeatures_ = 0L;
        minimumEdition_ = 0;
        maximumEdition_ = 0;
        if (fileBuilder_ == null) {
          file_ = java.util.Collections.emptyList();
        } else {
          file_ = null;
          fileBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000010);
        return this;
      }

      @java.lang.Override
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return com.google.protobuf.compiler.PluginProtos.internal_static_google_protobuf_compiler_CodeGeneratorResponse_descriptor;
      }

      @java.lang.Override
      public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse getDefaultInstanceForType() {
        return com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.getDefaultInstance();
      }

      @java.lang.Override
      public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse build() {
        com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      @java.lang.Override
      public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse buildPartial() {
        com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse result = new com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse(this);
        buildPartialRepeatedFields(result);
        if (bitField0_ != 0) { buildPartial0(result); }
        onBuilt();
        return result;
      }

      private void buildPartialRepeatedFields(com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse result) {
        if (fileBuilder_ == null) {
          if (((bitField0_ & 0x00000010) != 0)) {
            file_ = java.util.Collections.unmodifiableList(file_);
            bitField0_ = (bitField0_ & ~0x00000010);
          }
          result.file_ = file_;
        } else {
          result.file_ = fileBuilder_.build();
        }
      }

      private void buildPartial0(com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse result) {
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) != 0)) {
          result.error_ = error_;
          to_bitField0_ |= 0x00000001;
        }
        if (((from_bitField0_ & 0x00000002) != 0)) {
          result.supportedFeatures_ = supportedFeatures_;
          to_bitField0_ |= 0x00000002;
        }
        if (((from_bitField0_ & 0x00000004) != 0)) {
          result.minimumEdition_ = minimumEdition_;
          to_bitField0_ |= 0x00000004;
        }
        if (((from_bitField0_ & 0x00000008) != 0)) {
          result.maximumEdition_ = maximumEdition_;
          to_bitField0_ |= 0x00000008;
        }
        result.bitField0_ |= to_bitField0_;
      }

      @java.lang.Override
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse) {
          return mergeFrom((com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse other) {
        if (other == com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.getDefaultInstance()) return this;
        if (other.hasError()) {
          error_ = other.error_;
          bitField0_ |= 0x00000001;
          onChanged();
        }
        if (other.hasSupportedFeatures()) {
          setSupportedFeatures(other.getSupportedFeatures());
        }
        if (other.hasMinimumEdition()) {
          setMinimumEdition(other.getMinimumEdition());
        }
        if (other.hasMaximumEdition()) {
          setMaximumEdition(other.getMaximumEdition());
        }
        if (fileBuilder_ == null) {
          if (!other.file_.isEmpty()) {
            if (file_.isEmpty()) {
              file_ = other.file_;
              bitField0_ = (bitField0_ & ~0x00000010);
            } else {
              ensureFileIsMutable();
              file_.addAll(other.file_);
            }
            onChanged();
          }
        } else {
          if (!other.file_.isEmpty()) {
            if (fileBuilder_.isEmpty()) {
              fileBuilder_.dispose();
              fileBuilder_ = null;
              file_ = other.file_;
              bitField0_ = (bitField0_ & ~0x00000010);
              fileBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getFileFieldBuilder() : null;
            } else {
              fileBuilder_.addAllMessages(other.file_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        onChanged();
        return this;
      }

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

      @java.lang.Override
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        if (extensionRegistry == null) {
          throw new java.lang.NullPointerException();
        }
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              case 10: {
                error_ = input.readBytes();
                bitField0_ |= 0x00000001;
                break;
              } // case 10
              case 16: {
                supportedFeatures_ = input.readUInt64();
                bitField0_ |= 0x00000002;
                break;
              } // case 16
              case 24: {
                minimumEdition_ = input.readInt32();
                bitField0_ |= 0x00000004;
                break;
              } // case 24
              case 32: {
                maximumEdition_ = input.readInt32();
                bitField0_ |= 0x00000008;
                break;
              } // case 32
              case 122: {
                com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File m =
                    input.readMessage(
                        com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.parser(),
                        extensionRegistry);
                if (fileBuilder_ == null) {
                  ensureFileIsMutable();
                  file_.add(m);
                } else {
                  fileBuilder_.addMessage(m);
                }
                break;
              } // case 122
              default: {
                if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                  done = true; // was an endgroup tag
                }
                break;
              } // default:
            } // switch (tag)
          } // while (!done)
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.unwrapIOException();
        } finally {
          onChanged();
        } // finally
        return this;
      }
      private int bitField0_;

      private java.lang.Object error_ = "";
      /**
       * optional string error = 1 [json_name = "error"];
       * @return Whether the error field is set.
       */
      public boolean hasError() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * optional string error = 1 [json_name = "error"];
       * @return The error.
       */
      public java.lang.String getError() {
        java.lang.Object ref = error_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            error_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string error = 1 [json_name = "error"];
       * @return The bytes for error.
       */
      public com.google.protobuf.ByteString
          getErrorBytes() {
        java.lang.Object ref = error_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          error_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string error = 1 [json_name = "error"];
       * @param value The error to set.
       * @return This builder for chaining.
       */
      public Builder setError(
          java.lang.String value) {
        if (value == null) { throw new NullPointerException(); }
        error_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }
      /**
       * optional string error = 1 [json_name = "error"];
       * @return This builder for chaining.
       */
      public Builder clearError() {
        error_ = getDefaultInstance().getError();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * optional string error = 1 [json_name = "error"];
       * @param value The bytes for error to set.
       * @return This builder for chaining.
       */
      public Builder setErrorBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) { throw new NullPointerException(); }
        error_ = value;
        bitField0_ |= 0x00000001;
        onChanged();
        return this;
      }

      private long supportedFeatures_ ;
      /**
       * optional uint64 supported_features = 2 [json_name = "supportedFeatures"];
       * @return Whether the supportedFeatures field is set.
       */
      @java.lang.Override
      public boolean hasSupportedFeatures() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * optional uint64 supported_features = 2 [json_name = "supportedFeatures"];
       * @return The supportedFeatures.
       */
      @java.lang.Override
      public long getSupportedFeatures() {
        return supportedFeatures_;
      }
      /**
       * optional uint64 supported_features = 2 [json_name = "supportedFeatures"];
       * @param value The supportedFeatures to set.
       * @return This builder for chaining.
       */
      public Builder setSupportedFeatures(long value) {

        supportedFeatures_ = value;
        bitField0_ |= 0x00000002;
        onChanged();
        return this;
      }
      /**
       * optional uint64 supported_features = 2 [json_name = "supportedFeatures"];
       * @return This builder for chaining.
       */
      public Builder clearSupportedFeatures() {
        bitField0_ = (bitField0_ & ~0x00000002);
        supportedFeatures_ = 0L;
        onChanged();
        return this;
      }

      private int minimumEdition_ ;
      /**
       * optional int32 minimum_edition = 3 [json_name = "minimumEdition"];
       * @return Whether the minimumEdition field is set.
       */
      @java.lang.Override
      public boolean hasMinimumEdition() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * optional int32 minimum_edition = 3 [json_name = "minimumEdition"];
       * @return The minimumEdition.
       */
      @java.lang.Override
      public int getMinimumEdition() {
        return minimumEdition_;
      }
      /**
       * optional int32 minimum_edition = 3 [json_name = "minimumEdition"];
       * @param value The minimumEdition to set.
       * @return This builder for chaining.
       */
      public Builder setMinimumEdition(int value) {

        minimumEdition_ = value;
        bitField0_ |= 0x00000004;
        onChanged();
        return this;
      }
      /**
       * optional int32 minimum_edition = 3 [json_name = "minimumEdition"];
       * @return This builder for chaining.
       */
      public Builder clearMinimumEdition() {
        bitField0_ = (bitField0_ & ~0x00000004);
        minimumEdition_ = 0;
        onChanged();
        return this;
      }

      private int maximumEdition_ ;
      /**
       * optional int32 maximum_edition = 4 [json_name = "maximumEdition"];
       * @return Whether the maximumEdition field is set.
       */
      @java.lang.Override
      public boolean hasMaximumEdition() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * optional int32 maximum_edition = 4 [json_name = "maximumEdition"];
       * @return The maximumEdition.
       */
      @java.lang.Override
      public int getMaximumEdition() {
        return maximumEdition_;
      }
      /**
       * optional int32 maximum_edition = 4 [json_name = "maximumEdition"];
       * @param value The maximumEdition to set.
       * @return This builder for chaining.
       */
      public Builder setMaximumEdition(int value) {

        maximumEdition_ = value;
        bitField0_ |= 0x00000008;
        onChanged();
        return this;
      }
      /**
       * optional int32 maximum_edition = 4 [json_name = "maximumEdition"];
       * @return This builder for chaining.
       */
      public Builder clearMaximumEdition() {
        bitField0_ = (bitField0_ & ~0x00000008);
        maximumEdition_ = 0;
        onChanged();
        return this;
      }

      private java.util.List file_ =
        java.util.Collections.emptyList();
      private void ensureFileIsMutable() {
        if (!((bitField0_ & 0x00000010) != 0)) {
          file_ = new java.util.ArrayList(file_);
          bitField0_ |= 0x00000010;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder> fileBuilder_;

      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public java.util.List getFileList() {
        if (fileBuilder_ == null) {
          return java.util.Collections.unmodifiableList(file_);
        } else {
          return fileBuilder_.getMessageList();
        }
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public int getFileCount() {
        if (fileBuilder_ == null) {
          return file_.size();
        } else {
          return fileBuilder_.getCount();
        }
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getFile(int index) {
        if (fileBuilder_ == null) {
          return file_.get(index);
        } else {
          return fileBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public Builder setFile(
          int index, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File value) {
        if (fileBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFileIsMutable();
          file_.set(index, value);
          onChanged();
        } else {
          fileBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public Builder setFile(
          int index, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder builderForValue) {
        if (fileBuilder_ == null) {
          ensureFileIsMutable();
          file_.set(index, builderForValue.build());
          onChanged();
        } else {
          fileBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public Builder addFile(com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File value) {
        if (fileBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFileIsMutable();
          file_.add(value);
          onChanged();
        } else {
          fileBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public Builder addFile(
          int index, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File value) {
        if (fileBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureFileIsMutable();
          file_.add(index, value);
          onChanged();
        } else {
          fileBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public Builder addFile(
          com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder builderForValue) {
        if (fileBuilder_ == null) {
          ensureFileIsMutable();
          file_.add(builderForValue.build());
          onChanged();
        } else {
          fileBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public Builder addFile(
          int index, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder builderForValue) {
        if (fileBuilder_ == null) {
          ensureFileIsMutable();
          file_.add(index, builderForValue.build());
          onChanged();
        } else {
          fileBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public Builder addAllFile(
          java.lang.Iterable values) {
        if (fileBuilder_ == null) {
          ensureFileIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, file_);
          onChanged();
        } else {
          fileBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public Builder clearFile() {
        if (fileBuilder_ == null) {
          file_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000010);
          onChanged();
        } else {
          fileBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public Builder removeFile(int index) {
        if (fileBuilder_ == null) {
          ensureFileIsMutable();
          file_.remove(index);
          onChanged();
        } else {
          fileBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder getFileBuilder(
          int index) {
        return getFileFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder getFileOrBuilder(
          int index) {
        if (fileBuilder_ == null) {
          return file_.get(index);  } else {
          return fileBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public java.util.List 
           getFileOrBuilderList() {
        if (fileBuilder_ != null) {
          return fileBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(file_);
        }
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder addFileBuilder() {
        return getFileFieldBuilder().addBuilder(
            com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.getDefaultInstance());
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder addFileBuilder(
          int index) {
        return getFileFieldBuilder().addBuilder(
            index, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.getDefaultInstance());
      }
      /**
       * repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15 [json_name = "file"];
       */
      public java.util.List 
           getFileBuilderList() {
        return getFileFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder> 
          getFileFieldBuilder() {
        if (fileBuilder_ == null) {
          fileBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder, com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder>(
                  file_,
                  ((bitField0_ & 0x00000010) != 0),
                  getParentForChildren(),
                  isClean());
          file_ = null;
        }
        return fileBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:google.protobuf.compiler.CodeGeneratorResponse)
    }

    // @@protoc_insertion_point(class_scope:google.protobuf.compiler.CodeGeneratorResponse)
    private static final com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse DEFAULT_INSTANCE;
    static {
      DEFAULT_INSTANCE = new com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse();
    }

    public static com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse getDefaultInstance() {
      return DEFAULT_INSTANCE;
    }

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

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

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

    @java.lang.Override
    public com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse getDefaultInstanceForType() {
      return DEFAULT_INSTANCE;
    }

  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_google_protobuf_compiler_Version_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_google_protobuf_compiler_Version_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_google_protobuf_compiler_CodeGeneratorRequest_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_google_protobuf_compiler_CodeGeneratorRequest_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_google_protobuf_compiler_CodeGeneratorResponse_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_google_protobuf_compiler_CodeGeneratorResponse_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_google_protobuf_compiler_CodeGeneratorResponse_File_descriptor;
  private static final 
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_google_protobuf_compiler_CodeGeneratorResponse_File_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static  com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n%google/protobuf/compiler/plugin.proto\022" +
      "\030google.protobuf.compiler\032 google/protob" +
      "uf/descriptor.proto\"c\n\007Version\022\024\n\005major\030" +
      "\001 \001(\005R\005major\022\024\n\005minor\030\002 \001(\005R\005minor\022\024\n\005pa" +
      "tch\030\003 \001(\005R\005patch\022\026\n\006suffix\030\004 \001(\tR\006suffix" +
      "\"\317\002\n\024CodeGeneratorRequest\022(\n\020file_to_gen" +
      "erate\030\001 \003(\tR\016fileToGenerate\022\034\n\tparameter" +
      "\030\002 \001(\tR\tparameter\022C\n\nproto_file\030\017 \003(\0132$." +
      "google.protobuf.FileDescriptorProtoR\tpro" +
      "toFile\022\\\n\027source_file_descriptors\030\021 \003(\0132" +
      "$.google.protobuf.FileDescriptorProtoR\025s" +
      "ourceFileDescriptors\022L\n\020compiler_version" +
      "\030\003 \001(\0132!.google.protobuf.compiler.Versio" +
      "nR\017compilerVersion\"\205\004\n\025CodeGeneratorResp" +
      "onse\022\024\n\005error\030\001 \001(\tR\005error\022-\n\022supported_" +
      "features\030\002 \001(\004R\021supportedFeatures\022\'\n\017min" +
      "imum_edition\030\003 \001(\005R\016minimumEdition\022\'\n\017ma" +
      "ximum_edition\030\004 \001(\005R\016maximumEdition\022H\n\004f" +
      "ile\030\017 \003(\01324.google.protobuf.compiler.Cod" +
      "eGeneratorResponse.FileR\004file\032\261\001\n\004File\022\022" +
      "\n\004name\030\001 \001(\tR\004name\022\'\n\017insertion_point\030\002 " +
      "\001(\tR\016insertionPoint\022\030\n\007content\030\017 \001(\tR\007co" +
      "ntent\022R\n\023generated_code_info\030\020 \001(\0132\".goo" +
      "gle.protobuf.GeneratedCodeInfoR\021generate" +
      "dCodeInfo\"W\n\007Feature\022\020\n\014FEATURE_NONE\020\000\022\033" +
      "\n\027FEATURE_PROTO3_OPTIONAL\020\001\022\035\n\031FEATURE_S" +
      "UPPORTS_EDITIONS\020\002Br\n\034com.google.protobu" +
      "f.compilerB\014PluginProtosZ)google.golang." +
      "org/protobuf/types/pluginpb\252\002\030Google.Pro" +
      "tobuf.Compiler"
    };
    descriptor = com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
          com.google.protobuf.DescriptorProtos.getDescriptor(),
        });
    internal_static_google_protobuf_compiler_Version_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_google_protobuf_compiler_Version_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_google_protobuf_compiler_Version_descriptor,
        new java.lang.String[] { "Major", "Minor", "Patch", "Suffix", });
    internal_static_google_protobuf_compiler_CodeGeneratorRequest_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_google_protobuf_compiler_CodeGeneratorRequest_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_google_protobuf_compiler_CodeGeneratorRequest_descriptor,
        new java.lang.String[] { "FileToGenerate", "Parameter", "ProtoFile", "SourceFileDescriptors", "CompilerVersion", });
    internal_static_google_protobuf_compiler_CodeGeneratorResponse_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_google_protobuf_compiler_CodeGeneratorResponse_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_google_protobuf_compiler_CodeGeneratorResponse_descriptor,
        new java.lang.String[] { "Error", "SupportedFeatures", "MinimumEdition", "MaximumEdition", "File", });
    internal_static_google_protobuf_compiler_CodeGeneratorResponse_File_descriptor =
      internal_static_google_protobuf_compiler_CodeGeneratorResponse_descriptor.getNestedTypes().get(0);
    internal_static_google_protobuf_compiler_CodeGeneratorResponse_File_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_google_protobuf_compiler_CodeGeneratorResponse_File_descriptor,
        new java.lang.String[] { "Name", "InsertionPoint", "Content", "GeneratedCodeInfo", });
    descriptor.resolveAllFeaturesImmutable();
    com.google.protobuf.DescriptorProtos.getDescriptor();
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy