JSystemPiqi.system_errorOrBuilder getErrorOrBuilder();
  }
  public static final class system_response extends
      com.google.protobuf.GeneratedMessage
      implements system_responseOrBuilder {
    // Use system_response.newBuilder() to construct.
    private system_response(Builder builder) {
      super(builder);
    }
    private system_response(boolean noInit) {}
    
    private static final system_response defaultInstance;
    public static system_response getDefaultInstance() {
      return defaultInstance;
    }
    
    public system_response getDefaultInstanceForType() {
      return defaultInstance;
    }
    
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return JSystemPiqi.internal_static_system_response_descriptor;
    }
    
    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return JSystemPiqi.internal_static_system_response_fieldAccessorTable;
    }
    
    private int bitField0_;
    // optional bool ok = 1;
    public static final int OK_FIELD_NUMBER = 1;
    private boolean ok_;
    public boolean hasOk() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    public boolean getOk() {
      return ok_;
    }
    
    // optional .system_error error = 2;
    public static final int ERROR_FIELD_NUMBER = 2;
    private JSystemPiqi.system_error error_;
    public boolean hasError() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    public JSystemPiqi.system_error getError() {
      return error_;
    }
    public JSystemPiqi.system_errorOrBuilder getErrorOrBuilder() {
      return error_;
    }
    
    private void initFields() {
      ok_ = false;
      error_ = JSystemPiqi.system_error.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;
      
      memoizedIsInitialized = 1;
      return true;
    }
    
    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, ok_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, error_);
      }
      getUnknownFields().writeTo(output);
    }
    
    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;
    
      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(1, ok_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, error_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }
    
    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }
    
    public static JSystemPiqi.system_response parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static JSystemPiqi.system_response parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static JSystemPiqi.system_response parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data).buildParsed();
    }
    public static JSystemPiqi.system_response parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return newBuilder().mergeFrom(data, extensionRegistry)
               .buildParsed();
    }
    public static JSystemPiqi.system_response parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static JSystemPiqi.system_response parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    public static JSystemPiqi.system_response parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static JSystemPiqi.system_response parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      Builder builder = newBuilder();
      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
        return builder.buildParsed();
      } else {
        return null;
      }
    }
    public static JSystemPiqi.system_response parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input).buildParsed();
    }
    public static JSystemPiqi.system_response parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return newBuilder().mergeFrom(input, extensionRegistry)
               .buildParsed();
    }
    
    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(JSystemPiqi.system_response prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }
    
    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder<Builder>
       implements JSystemPiqi.system_responseOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return JSystemPiqi.internal_static_system_response_descriptor;
      }
      
      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return JSystemPiqi.internal_static_system_response_fieldAccessorTable;
      }
      
      // Construct using JSystemPiqi.system_response.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }
      
      private Builder(BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getErrorFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }
      
      public Builder clear() {
        super.clear();
        ok_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (errorBuilder_ == null) {
          error_ = JSystemPiqi.system_error.getDefaultInstance();
        } else {
          errorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      
      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }
      
      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return JSystemPiqi.system_response.getDescriptor();
      }
      
      public JSystemPiqi.system_response getDefaultInstanceForType() {
        return JSystemPiqi.system_response.getDefaultInstance();
      }
      
      public JSystemPiqi.system_response build() {
        JSystemPiqi.system_response result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }
      
      private JSystemPiqi.system_response buildParsed()
          throws com.google.protobuf.InvalidProtocolBufferException {
        JSystemPiqi.system_response result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(
            result).asInvalidProtocolBufferException();
        }
        return result;
      }
      
      public JSystemPiqi.system_response buildPartial() {
        JSystemPiqi.system_response result = new JSystemPiqi.system_response(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.ok_ = ok_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (errorBuilder_ == null) {
          result.error_ = error_;
        } else {
          result.error_ = errorBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }
      
      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof JSystemPiqi.system_response) {
          return mergeFrom((JSystemPiqi.system_response)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }
      
      public Builder mergeFrom(JSystemPiqi.system_response other) {
        if (other == JSystemPiqi.system_response.getDefaultInstance()) return this;
        if (other.hasOk()) {
          setOk(other.getOk());
        }
        if (other.hasError()) {
          mergeError(other.getError());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }
      
      public final boolean isInitialized() {
        return true;
      }
      
      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder(
            this.getUnknownFields());
        while (true) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              this.setUnknownFields(unknownFields.build());
              onChanged();
              return this;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                this.setUnknownFields(unknownFields.build());
                onChanged();
                return this;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              ok_ = input.readBool();
              break;
            }
            case 18: {
              JSystemPiqi.system_error.Builder subBuilder = JSystemPiqi.system_error.newBuilder();
              if (hasError()) {
                subBuilder.mergeFrom(getError());
              }
              input.readMessage(subBuilder, extensionRegistry);
              setError(subBuilder.buildPartial());
              break;
            }
          }
        }
      }
      
      private int bitField0_;
      
      // optional bool ok = 1;
      private boolean ok_ ;
      public boolean hasOk() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      public boolean getOk() {
        return ok_;
      }
      public Builder setOk(boolean value) {
        bitField0_ |= 0x00000001;
        ok_ = value;
        onChanged();
        return this;
      }
      public Builder clearOk() {
        bitField0_ = (bitField0_ & ~0x00000001);
        ok_ = false;
        onChanged();
        return this;
      }
      
      // optional .system_error error = 2;
      private JSystemPiqi.system_error error_ = JSystemPiqi.system_error.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          JSystemPiqi.system_error, JSystemPiqi.system_error.Builder, JSystemPiqi.system_errorOrBuilder> errorBuilder_;
      public boolean hasError() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      public JSystemPiqi.system_error getError() {
        if (errorBuilder_ == null) {
          return error_;
        } else {
          return errorBuilder_.getMessage();
        }
      }
      public Builder setError(JSystemPiqi.system_error value) {
        if (errorBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          error_ = value;
          onChanged();
        } else {
          errorBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder setError(
          JSystemPiqi.system_error.Builder builderForValue) {
        if (errorBuilder_ == null) {
          error_ = builderForValue.build();
          onChanged();
        } else {
          errorBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder mergeError(JSystemPiqi.system_error value) {
        if (errorBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              error_ != JSystemPiqi.system_error.getDefaultInstance()) {
            error_ =
              JSystemPiqi.system_error.newBuilder(error_).mergeFrom(value).buildPartial();
          } else {
            error_ = value;
          }
          onChanged();
        } else {
          errorBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      public Builder clearError() {
        if (errorBuilder_ == null) {
          error_ = JSystemPiqi.system_error.getDefaultInstance();
          onChanged();
        } else {
          errorBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      public JSystemPiqi.system_error.Builder getErrorBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getErrorFieldBuilder().getBuilder();
      }
      public JSystemPiqi.system_errorOrBuilder getErrorOrBuilder() {
        if (errorBuilder_ != null) {
          return errorBuilder_.getMessageOrBuilder();
        } else {
          return error_;
        }
      }
      private com.google.protobuf.SingleFieldBuilder<
          JSystemPiqi.system_error, JSystemPiqi.system_error.Builder, JSystemPiqi.system_errorOrBuilder> 
          getErrorFieldBuilder() {
        if (errorBuilder_ == null) {
          errorBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              JSystemPiqi.system_error, JSystemPiqi.system_error.Builder, JSystemPiqi.system_errorOrBuilder>(
                  error_,
                  getParentForChildren(),
                  isClean());
          error_ = null;
        }
        return errorBuilder_;
      }
      
      // @@protoc_insertion_point(builder_scope:system_response)
    }
    
    static {
      defaultInstance = new system_response(true);
      defaultInstance.initFields();
    }
    
    // @@protoc_insertion_point(class_scope:system_response)
  }
  
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_grant_coins_request_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_grant_coins_request_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_buy_item_request_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_buy_item_request_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_system_request_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_system_request_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_system_error_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_system_error_fieldAccessorTable;
  private static com.google.protobuf.Descriptors.Descriptor
    internal_static_system_response_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_system_response_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\023j-system.piqi.proto\"4\n\023grant_coins_req" +
      "uest\022\016\n\006userid\030\001 \002(\t\022\r\n\005coins\030\002 \002(\r\"H\n\020b" +
      "uy_item_request\022\016\n\006userid\030\001 \002(\t\022\024\n\014shop_" +
      "item_id\030\002 \002(\r\022\016\n\006amount\030\003 \002(\r\"`\n\016system_" +
      "request\022#\n\010buy_item\030\001 \001(\0132\021.buy_item_req" +
      "uest\022)\n\013grant_coins\030\002 \001(\0132\024.grant_coins_" +
      "request\"1\n\014system_error\022\014\n\004code\030\001 \001(\r\022\023\n" +
      "\013description\030\002 \001(\t\";\n\017system_response\022\n\n" +
      "\002ok\030\001 \001(\010\022\034\n\005error\030\002 \001(\0132\r.system_error"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public com.google.protobuf.ExtensionRegistry assignDescriptors(
            com.google.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_grant_coins_request_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_grant_coins_request_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_grant_coins_request_descriptor,
              new java.lang.String[] { "Userid", "Coins", },
              JSystemPiqi.grant_coins_request.class,
              JSystemPiqi.grant_coins_request.Builder.class);
          internal_static_buy_item_request_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_buy_item_request_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_buy_item_request_descriptor,
              new java.lang.String[] { "Userid", "ShopItemId", "Amount", },
              JSystemPiqi.buy_item_request.class,
              JSystemPiqi.buy_item_request.Builder.class);
          internal_static_system_request_descriptor =
            getDescriptor().getMessageTypes().get(2);
          internal_static_system_request_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_system_request_descriptor,
              new java.lang.String[] { "BuyItem", "GrantCoins", },
              JSystemPiqi.system_request.class,
              JSystemPiqi.system_request.Builder.class);
          internal_static_system_error_descriptor =
            getDescriptor().getMessageTypes().get(3);
          internal_static_system_error_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_system_error_descriptor,
              new java.lang.String[] { "Code", "Description", },
              JSystemPiqi.system_error.class,
              JSystemPiqi.system_error.Builder.class);
          internal_static_system_response_descriptor =
            getDescriptor().getMessageTypes().get(4);
          internal_static_system_response_fieldAccessorTable = new
            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_system_response_descriptor,
              new java.lang.String[] { "Ok", "Error", },
              JSystemPiqi.system_response.class,
              JSystemPiqi.system_response.Builder.class);
          return null;
        }
      };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }