content: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // NO CHECKED-IN PROTOBUF GENCODE
  // source: ots_filter.proto
  // Protobuf Java Version: 4.28.2
  
  package com.alicloud.openservices.tablestore.core.protocol;
  
  public final class OtsFilter {
    private OtsFilter() {}
    static {
      com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
        com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
        /* major= */ 4,
        /* minor= */ 28,
        /* patch= */ 2,
        /* suffix= */ "",
        OtsFilter.class.getName());
    }
    public static void registerAllExtensions(
        com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite registry) {
    }
  
    public static void registerAllExtensions(
        com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistry registry) {
      registerAllExtensions(
          (com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite) registry);
    }
    /**
     * Protobuf enum {@code com.alicloud.openservices.tablestore.core.protocol.VariantType}
     */
    public enum VariantType
        implements com.aliyun.ots.thirdparty.com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>VT_INTEGER = 0;</code>
       */
      VT_INTEGER(0),
      /**
       * <code>VT_DOUBLE = 1;</code>
       */
      VT_DOUBLE(1),
      /**
       * <pre>
       * VT_BOOLEAN = 2;
       * </pre>
       *
       * <code>VT_STRING = 3;</code>
       */
      VT_STRING(3),
      /**
       * <code>VT_NULL = 6;</code>
       */
      VT_NULL(6),
      /**
       * <code>VT_BLOB = 7;</code>
       */
      VT_BLOB(7),
      ;
  
      static {
        com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 2,
          /* suffix= */ "",
          VariantType.class.getName());
      }
      /**
       * <code>VT_INTEGER = 0;</code>
       */
      public static final int VT_INTEGER_VALUE = 0;
      /**
       * <code>VT_DOUBLE = 1;</code>
       */
      public static final int VT_DOUBLE_VALUE = 1;
      /**
       * <pre>
       * VT_BOOLEAN = 2;
       * </pre>
       *
       * <code>VT_STRING = 3;</code>
       */
      public static final int VT_STRING_VALUE = 3;
      /**
       * <code>VT_NULL = 6;</code>
       */
      public static final int VT_NULL_VALUE = 6;
      /**
       * <code>VT_BLOB = 7;</code>
       */
      public static final int VT_BLOB_VALUE = 7;
  
  
      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 VariantType 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 VariantType forNumber(int value) {
        switch (value) {
          case 0: return VT_INTEGER;
          case 1: return VT_DOUBLE;
          case 3: return VT_STRING;
          case 6: return VT_NULL;
          case 7: return VT_BLOB;
          default: return null;
        }
      }
  
      public static com.aliyun.ots.thirdparty.com.google.protobuf.Internal.EnumLiteMap<VariantType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.aliyun.ots.thirdparty.com.google.protobuf.Internal.EnumLiteMap<
          VariantType> internalValueMap =
            new com.aliyun.ots.thirdparty.com.google.protobuf.Internal.EnumLiteMap<VariantType>() {
              public VariantType findValueByNumber(int number) {
                return VariantType.forNumber(number);
              }
            };
  
      public final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.getDescriptor().getEnumTypes().get(0);
      }
  
      private static final VariantType[] VALUES = values();
  
      public static VariantType valueOf(
          com.aliyun.ots.thirdparty.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 VariantType(int value) {
        this.value = value;
      }
  
      // @@protoc_insertion_point(enum_scope:com.alicloud.openservices.tablestore.core.protocol.VariantType)
    }
  
    /**
     * Protobuf enum {@code com.alicloud.openservices.tablestore.core.protocol.FilterType}
     */
    public enum FilterType
        implements com.aliyun.ots.thirdparty.com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>FT_SINGLE_COLUMN_VALUE = 1;</code>
       */
      FT_SINGLE_COLUMN_VALUE(1),
      /**
       * <code>FT_COMPOSITE_COLUMN_VALUE = 2;</code>
       */
      FT_COMPOSITE_COLUMN_VALUE(2),
      /**
       * <code>FT_COLUMN_PAGINATION = 3;</code>
       */
      FT_COLUMN_PAGINATION(3),
      ;
  
      static {
        com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 2,
          /* suffix= */ "",
          FilterType.class.getName());
      }
      /**
       * <code>FT_SINGLE_COLUMN_VALUE = 1;</code>
       */
      public static final int FT_SINGLE_COLUMN_VALUE_VALUE = 1;
      /**
       * <code>FT_COMPOSITE_COLUMN_VALUE = 2;</code>
       */
      public static final int FT_COMPOSITE_COLUMN_VALUE_VALUE = 2;
      /**
       * <code>FT_COLUMN_PAGINATION = 3;</code>
       */
      public static final int FT_COLUMN_PAGINATION_VALUE = 3;
  
  
      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 FilterType 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 FilterType forNumber(int value) {
        switch (value) {
          case 1: return FT_SINGLE_COLUMN_VALUE;
          case 2: return FT_COMPOSITE_COLUMN_VALUE;
          case 3: return FT_COLUMN_PAGINATION;
          default: return null;
        }
      }
  
      public static com.aliyun.ots.thirdparty.com.google.protobuf.Internal.EnumLiteMap<FilterType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.aliyun.ots.thirdparty.com.google.protobuf.Internal.EnumLiteMap<
          FilterType> internalValueMap =
            new com.aliyun.ots.thirdparty.com.google.protobuf.Internal.EnumLiteMap<FilterType>() {
              public FilterType findValueByNumber(int number) {
                return FilterType.forNumber(number);
              }
            };
  
      public final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.getDescriptor().getEnumTypes().get(1);
      }
  
      private static final FilterType[] VALUES = values();
  
      public static FilterType valueOf(
          com.aliyun.ots.thirdparty.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 FilterType(int value) {
        this.value = value;
      }
  
      // @@protoc_insertion_point(enum_scope:com.alicloud.openservices.tablestore.core.protocol.FilterType)
    }
  
    /**
     * Protobuf enum {@code com.alicloud.openservices.tablestore.core.protocol.ComparatorType}
     */
    public enum ComparatorType
        implements com.aliyun.ots.thirdparty.com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>CT_EQUAL = 1;</code>
       */
      CT_EQUAL(1),
      /**
       * <code>CT_NOT_EQUAL = 2;</code>
       */
      CT_NOT_EQUAL(2),
      /**
       * <code>CT_GREATER_THAN = 3;</code>
       */
      CT_GREATER_THAN(3),
      /**
       * <code>CT_GREATER_EQUAL = 4;</code>
       */
      CT_GREATER_EQUAL(4),
      /**
       * <code>CT_LESS_THAN = 5;</code>
       */
      CT_LESS_THAN(5),
      /**
       * <code>CT_LESS_EQUAL = 6;</code>
       */
      CT_LESS_EQUAL(6),
      /**
       * <code>CT_EXIST = 7;</code>
       */
      CT_EXIST(7),
      /**
       * <code>CT_NOT_EXIST = 8;</code>
       */
      CT_NOT_EXIST(8),
      ;
  
      static {
        com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 2,
          /* suffix= */ "",
          ComparatorType.class.getName());
      }
      /**
       * <code>CT_EQUAL = 1;</code>
       */
      public static final int CT_EQUAL_VALUE = 1;
      /**
       * <code>CT_NOT_EQUAL = 2;</code>
       */
      public static final int CT_NOT_EQUAL_VALUE = 2;
      /**
       * <code>CT_GREATER_THAN = 3;</code>
       */
      public static final int CT_GREATER_THAN_VALUE = 3;
      /**
       * <code>CT_GREATER_EQUAL = 4;</code>
       */
      public static final int CT_GREATER_EQUAL_VALUE = 4;
      /**
       * <code>CT_LESS_THAN = 5;</code>
       */
      public static final int CT_LESS_THAN_VALUE = 5;
      /**
       * <code>CT_LESS_EQUAL = 6;</code>
       */
      public static final int CT_LESS_EQUAL_VALUE = 6;
      /**
       * <code>CT_EXIST = 7;</code>
       */
      public static final int CT_EXIST_VALUE = 7;
      /**
       * <code>CT_NOT_EXIST = 8;</code>
       */
      public static final int CT_NOT_EXIST_VALUE = 8;
  
  
      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 ComparatorType 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 ComparatorType forNumber(int value) {
        switch (value) {
          case 1: return CT_EQUAL;
          case 2: return CT_NOT_EQUAL;
          case 3: return CT_GREATER_THAN;
          case 4: return CT_GREATER_EQUAL;
          case 5: return CT_LESS_THAN;
          case 6: return CT_LESS_EQUAL;
          case 7: return CT_EXIST;
          case 8: return CT_NOT_EXIST;
          default: return null;
        }
      }
  
      public static com.aliyun.ots.thirdparty.com.google.protobuf.Internal.EnumLiteMap<ComparatorType>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.aliyun.ots.thirdparty.com.google.protobuf.Internal.EnumLiteMap<
          ComparatorType> internalValueMap =
            new com.aliyun.ots.thirdparty.com.google.protobuf.Internal.EnumLiteMap<ComparatorType>() {
              public ComparatorType findValueByNumber(int number) {
                return ComparatorType.forNumber(number);
              }
            };
  
      public final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.getDescriptor().getEnumTypes().get(2);
      }
  
      private static final ComparatorType[] VALUES = values();
  
      public static ComparatorType valueOf(
          com.aliyun.ots.thirdparty.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 ComparatorType(int value) {
        this.value = value;
      }
  
      // @@protoc_insertion_point(enum_scope:com.alicloud.openservices.tablestore.core.protocol.ComparatorType)
    }
  
    /**
     * Protobuf enum {@code com.alicloud.openservices.tablestore.core.protocol.LogicalOperator}
     */
    public enum LogicalOperator
        implements com.aliyun.ots.thirdparty.com.google.protobuf.ProtocolMessageEnum {
      /**
       * <code>LO_NOT = 1;</code>
       */
      LO_NOT(1),
      /**
       * <code>LO_AND = 2;</code>
       */
      LO_AND(2),
      /**
       * <code>LO_OR = 3;</code>
       */
      LO_OR(3),
      ;
  
      static {
        com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 2,
          /* suffix= */ "",
          LogicalOperator.class.getName());
      }
      /**
       * <code>LO_NOT = 1;</code>
       */
      public static final int LO_NOT_VALUE = 1;
      /**
       * <code>LO_AND = 2;</code>
       */
      public static final int LO_AND_VALUE = 2;
      /**
       * <code>LO_OR = 3;</code>
       */
      public static final int LO_OR_VALUE = 3;
  
  
      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 LogicalOperator 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 LogicalOperator forNumber(int value) {
        switch (value) {
          case 1: return LO_NOT;
          case 2: return LO_AND;
          case 3: return LO_OR;
          default: return null;
        }
      }
  
      public static com.aliyun.ots.thirdparty.com.google.protobuf.Internal.EnumLiteMap<LogicalOperator>
          internalGetValueMap() {
        return internalValueMap;
      }
      private static final com.aliyun.ots.thirdparty.com.google.protobuf.Internal.EnumLiteMap<
          LogicalOperator> internalValueMap =
            new com.aliyun.ots.thirdparty.com.google.protobuf.Internal.EnumLiteMap<LogicalOperator>() {
              public LogicalOperator findValueByNumber(int number) {
                return LogicalOperator.forNumber(number);
              }
            };
  
      public final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.EnumValueDescriptor
          getValueDescriptor() {
        return getDescriptor().getValues().get(ordinal());
      }
      public final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptorForType() {
        return getDescriptor();
      }
      public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.EnumDescriptor
          getDescriptor() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.getDescriptor().getEnumTypes().get(3);
      }
  
      private static final LogicalOperator[] VALUES = values();
  
      public static LogicalOperator valueOf(
          com.aliyun.ots.thirdparty.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 LogicalOperator(int value) {
        this.value = value;
      }
  
      // @@protoc_insertion_point(enum_scope:com.alicloud.openservices.tablestore.core.protocol.LogicalOperator)
    }
  
    public interface ValueTransferRuleOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule)
        com.aliyun.ots.thirdparty.com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>required string regex = 1;</code>
       * @return Whether the regex field is set.
       */
      boolean hasRegex();
      /**
       * <code>required string regex = 1;</code>
       * @return The regex.
       */
      java.lang.String getRegex();
      /**
       * <code>required string regex = 1;</code>
       * @return The bytes for regex.
       */
      com.aliyun.ots.thirdparty.com.google.protobuf.ByteString
          getRegexBytes();
  
      /**
       * <code>optional .com.alicloud.openservices.tablestore.core.protocol.VariantType cast_type = 2;</code>
       * @return Whether the castType field is set.
       */
      boolean hasCastType();
      /**
       * <code>optional .com.alicloud.openservices.tablestore.core.protocol.VariantType cast_type = 2;</code>
       * @return The castType.
       */
      com.alicloud.openservices.tablestore.core.protocol.OtsFilter.VariantType getCastType();
    }
    /**
     * Protobuf type {@code com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule}
     */
    public static final class ValueTransferRule extends
        com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule)
        ValueTransferRuleOrBuilder {
    private static final long serialVersionUID = 0L;
      static {
        com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 2,
          /* suffix= */ "",
          ValueTransferRule.class.getName());
      }
      // Use ValueTransferRule.newBuilder() to construct.
      private ValueTransferRule(com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
      }
      private ValueTransferRule() {
        regex_ = "";
        castType_ = 0;
      }
  
      public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_ValueTransferRule_descriptor;
      }
  
      @java.lang.Override
      protected com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_ValueTransferRule_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.class, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.Builder.class);
      }
  
      private int bitField0_;
      public static final int REGEX_FIELD_NUMBER = 1;
      @SuppressWarnings("serial")
      private volatile java.lang.Object regex_ = "";
      /**
       * <code>required string regex = 1;</code>
       * @return Whether the regex field is set.
       */
      @java.lang.Override
      public boolean hasRegex() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required string regex = 1;</code>
       * @return The regex.
       */
      @java.lang.Override
      public java.lang.String getRegex() {
        java.lang.Object ref = regex_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString bs = 
              (com.aliyun.ots.thirdparty.com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            regex_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string regex = 1;</code>
       * @return The bytes for regex.
       */
      @java.lang.Override
      public com.aliyun.ots.thirdparty.com.google.protobuf.ByteString
          getRegexBytes() {
        java.lang.Object ref = regex_;
        if (ref instanceof java.lang.String) {
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString b = 
              com.aliyun.ots.thirdparty.com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          regex_ = b;
          return b;
        } else {
          return (com.aliyun.ots.thirdparty.com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int CAST_TYPE_FIELD_NUMBER = 2;
      private int castType_ = 0;
      /**
       * <code>optional .com.alicloud.openservices.tablestore.core.protocol.VariantType cast_type = 2;</code>
       * @return Whether the castType field is set.
       */
      @java.lang.Override public boolean hasCastType() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>optional .com.alicloud.openservices.tablestore.core.protocol.VariantType cast_type = 2;</code>
       * @return The castType.
       */
      @java.lang.Override public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.VariantType getCastType() {
        com.alicloud.openservices.tablestore.core.protocol.OtsFilter.VariantType result = com.alicloud.openservices.tablestore.core.protocol.OtsFilter.VariantType.forNumber(castType_);
        return result == null ? com.alicloud.openservices.tablestore.core.protocol.OtsFilter.VariantType.VT_INTEGER : result;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        if (!hasRegex()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.writeString(output, 1, regex_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeEnum(2, castType_);
        }
        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.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.computeStringSize(1, regex_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream
            .computeEnumSize(2, castType_);
        }
        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.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule)) {
          return super.equals(obj);
        }
        com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule other = (com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule) obj;
  
        if (hasRegex() != other.hasRegex()) return false;
        if (hasRegex()) {
          if (!getRegex()
              .equals(other.getRegex())) return false;
        }
        if (hasCastType() != other.hasCastType()) return false;
        if (hasCastType()) {
          if (castType_ != other.castType_) 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 (hasRegex()) {
          hash = (37 * hash) + REGEX_FIELD_NUMBER;
          hash = (53 * hash) + getRegex().hashCode();
        }
        if (hasCastType()) {
          hash = (37 * hash) + CAST_TYPE_FIELD_NUMBER;
          hash = (53 * hash) + castType_;
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule parseFrom(
          java.nio.ByteBuffer data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule parseFrom(
          java.nio.ByteBuffer data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule parseFrom(byte[] data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule parseFrom(
          byte[] data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule parseFrom(
          java.io.InputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input);
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule parseDelimitedFrom(
          java.io.InputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.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.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule 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.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule}
       */
      public static final class Builder extends
          com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule)
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRuleOrBuilder {
        public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_ValueTransferRule_descriptor;
        }
  
        @java.lang.Override
        protected com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_ValueTransferRule_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.class, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.Builder.class);
        }
  
        // Construct using com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.newBuilder()
        private Builder() {
  
        }
  
        private Builder(
            com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          regex_ = "";
          castType_ = 0;
          return this;
        }
  
        @java.lang.Override
        public com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_ValueTransferRule_descriptor;
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule getDefaultInstanceForType() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.getDefaultInstance();
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule build() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule buildPartial() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule result = new com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.regex_ = regex_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.castType_ = castType_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @java.lang.Override
        public Builder mergeFrom(com.aliyun.ots.thirdparty.com.google.protobuf.Message other) {
          if (other instanceof com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule) {
            return mergeFrom((com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule other) {
          if (other == com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.getDefaultInstance()) return this;
          if (other.hasRegex()) {
            regex_ = other.regex_;
            bitField0_ |= 0x00000001;
            onChanged();
          }
          if (other.hasCastType()) {
            setCastType(other.getCastType());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasRegex()) {
            return false;
          }
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
            com.aliyun.ots.thirdparty.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: {
                  regex_ = input.readBytes();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 10
                case 16: {
                  int tmpRaw = input.readEnum();
                  com.alicloud.openservices.tablestore.core.protocol.OtsFilter.VariantType tmpValue =
                      com.alicloud.openservices.tablestore.core.protocol.OtsFilter.VariantType.forNumber(tmpRaw);
                  if (tmpValue == null) {
                    mergeUnknownVarintField(2, tmpRaw);
                  } else {
                    castType_ = tmpRaw;
                    bitField0_ |= 0x00000002;
                  }
                  break;
                } // case 16
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private java.lang.Object regex_ = "";
        /**
         * <code>required string regex = 1;</code>
         * @return Whether the regex field is set.
         */
        public boolean hasRegex() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required string regex = 1;</code>
         * @return The regex.
         */
        public java.lang.String getRegex() {
          java.lang.Object ref = regex_;
          if (!(ref instanceof java.lang.String)) {
            com.aliyun.ots.thirdparty.com.google.protobuf.ByteString bs =
                (com.aliyun.ots.thirdparty.com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              regex_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string regex = 1;</code>
         * @return The bytes for regex.
         */
        public com.aliyun.ots.thirdparty.com.google.protobuf.ByteString
            getRegexBytes() {
          java.lang.Object ref = regex_;
          if (ref instanceof String) {
            com.aliyun.ots.thirdparty.com.google.protobuf.ByteString b = 
                com.aliyun.ots.thirdparty.com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            regex_ = b;
            return b;
          } else {
            return (com.aliyun.ots.thirdparty.com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>required string regex = 1;</code>
         * @param value The regex to set.
         * @return This builder for chaining.
         */
        public Builder setRegex(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          regex_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required string regex = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearRegex() {
          regex_ = getDefaultInstance().getRegex();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
          return this;
        }
        /**
         * <code>required string regex = 1;</code>
         * @param value The bytes for regex to set.
         * @return This builder for chaining.
         */
        public Builder setRegexBytes(
            com.aliyun.ots.thirdparty.com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          regex_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
  
        private int castType_ = 0;
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.VariantType cast_type = 2;</code>
         * @return Whether the castType field is set.
         */
        @java.lang.Override public boolean hasCastType() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.VariantType cast_type = 2;</code>
         * @return The castType.
         */
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.VariantType getCastType() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.VariantType result = com.alicloud.openservices.tablestore.core.protocol.OtsFilter.VariantType.forNumber(castType_);
          return result == null ? com.alicloud.openservices.tablestore.core.protocol.OtsFilter.VariantType.VT_INTEGER : result;
        }
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.VariantType cast_type = 2;</code>
         * @param value The castType to set.
         * @return This builder for chaining.
         */
        public Builder setCastType(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.VariantType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000002;
          castType_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.VariantType cast_type = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearCastType() {
          bitField0_ = (bitField0_ & ~0x00000002);
          castType_ = 0;
          onChanged();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule)
      }
  
      // @@protoc_insertion_point(class_scope:com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule)
      private static final com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule();
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.aliyun.ots.thirdparty.com.google.protobuf.Parser<ValueTransferRule>
          PARSER = new com.aliyun.ots.thirdparty.com.google.protobuf.AbstractParser<ValueTransferRule>() {
        @java.lang.Override
        public ValueTransferRule parsePartialFrom(
            com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
            com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static com.aliyun.ots.thirdparty.com.google.protobuf.Parser<ValueTransferRule> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.aliyun.ots.thirdparty.com.google.protobuf.Parser<ValueTransferRule> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface SingleColumnValueFilterOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alicloud.openservices.tablestore.core.protocol.SingleColumnValueFilter)
        com.aliyun.ots.thirdparty.com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>required .com.alicloud.openservices.tablestore.core.protocol.ComparatorType comparator = 1;</code>
       * @return Whether the comparator field is set.
       */
      boolean hasComparator();
      /**
       * <code>required .com.alicloud.openservices.tablestore.core.protocol.ComparatorType comparator = 1;</code>
       * @return The comparator.
       */
      com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ComparatorType getComparator();
  
      /**
       * <code>required string column_name = 2;</code>
       * @return Whether the columnName field is set.
       */
      boolean hasColumnName();
      /**
       * <code>required string column_name = 2;</code>
       * @return The columnName.
       */
      java.lang.String getColumnName();
      /**
       * <code>required string column_name = 2;</code>
       * @return The bytes for columnName.
       */
      com.aliyun.ots.thirdparty.com.google.protobuf.ByteString
          getColumnNameBytes();
  
      /**
       * <code>required bytes column_value = 3;</code>
       * @return Whether the columnValue field is set.
       */
      boolean hasColumnValue();
      /**
       * <code>required bytes column_value = 3;</code>
       * @return The columnValue.
       */
      com.aliyun.ots.thirdparty.com.google.protobuf.ByteString getColumnValue();
  
      /**
       * <code>required bool filter_if_missing = 4;</code>
       * @return Whether the filterIfMissing field is set.
       */
      boolean hasFilterIfMissing();
      /**
       * <code>required bool filter_if_missing = 4;</code>
       * @return The filterIfMissing.
       */
      boolean getFilterIfMissing();
  
      /**
       * <code>required bool latest_version_only = 5;</code>
       * @return Whether the latestVersionOnly field is set.
       */
      boolean hasLatestVersionOnly();
      /**
       * <code>required bool latest_version_only = 5;</code>
       * @return The latestVersionOnly.
       */
      boolean getLatestVersionOnly();
  
      /**
       * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
       * @return Whether the valueTransRule field is set.
       */
      boolean hasValueTransRule();
      /**
       * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
       * @return The valueTransRule.
       */
      com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule getValueTransRule();
      /**
       * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
       */
      com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRuleOrBuilder getValueTransRuleOrBuilder();
    }
    /**
     * Protobuf type {@code com.alicloud.openservices.tablestore.core.protocol.SingleColumnValueFilter}
     */
    public static final class SingleColumnValueFilter extends
        com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:com.alicloud.openservices.tablestore.core.protocol.SingleColumnValueFilter)
        SingleColumnValueFilterOrBuilder {
    private static final long serialVersionUID = 0L;
      static {
        com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 2,
          /* suffix= */ "",
          SingleColumnValueFilter.class.getName());
      }
      // Use SingleColumnValueFilter.newBuilder() to construct.
      private SingleColumnValueFilter(com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
      }
      private SingleColumnValueFilter() {
        comparator_ = 1;
        columnName_ = "";
        columnValue_ = com.aliyun.ots.thirdparty.com.google.protobuf.ByteString.EMPTY;
      }
  
      public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_SingleColumnValueFilter_descriptor;
      }
  
      @java.lang.Override
      protected com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_SingleColumnValueFilter_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter.class, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter.Builder.class);
      }
  
      private int bitField0_;
      public static final int COMPARATOR_FIELD_NUMBER = 1;
      private int comparator_ = 1;
      /**
       * <code>required .com.alicloud.openservices.tablestore.core.protocol.ComparatorType comparator = 1;</code>
       * @return Whether the comparator field is set.
       */
      @java.lang.Override public boolean hasComparator() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .com.alicloud.openservices.tablestore.core.protocol.ComparatorType comparator = 1;</code>
       * @return The comparator.
       */
      @java.lang.Override public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ComparatorType getComparator() {
        com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ComparatorType result = com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ComparatorType.forNumber(comparator_);
        return result == null ? com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ComparatorType.CT_EQUAL : result;
      }
  
      public static final int COLUMN_NAME_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private volatile java.lang.Object columnName_ = "";
      /**
       * <code>required string column_name = 2;</code>
       * @return Whether the columnName field is set.
       */
      @java.lang.Override
      public boolean hasColumnName() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required string column_name = 2;</code>
       * @return The columnName.
       */
      @java.lang.Override
      public java.lang.String getColumnName() {
        java.lang.Object ref = columnName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString bs = 
              (com.aliyun.ots.thirdparty.com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            columnName_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string column_name = 2;</code>
       * @return The bytes for columnName.
       */
      @java.lang.Override
      public com.aliyun.ots.thirdparty.com.google.protobuf.ByteString
          getColumnNameBytes() {
        java.lang.Object ref = columnName_;
        if (ref instanceof java.lang.String) {
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString b = 
              com.aliyun.ots.thirdparty.com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          columnName_ = b;
          return b;
        } else {
          return (com.aliyun.ots.thirdparty.com.google.protobuf.ByteString) ref;
        }
      }
  
      public static final int COLUMN_VALUE_FIELD_NUMBER = 3;
      private com.aliyun.ots.thirdparty.com.google.protobuf.ByteString columnValue_ = com.aliyun.ots.thirdparty.com.google.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes column_value = 3;</code>
       * @return Whether the columnValue field is set.
       */
      @java.lang.Override
      public boolean hasColumnValue() {
        return ((bitField0_ & 0x00000004) != 0);
      }
      /**
       * <code>required bytes column_value = 3;</code>
       * @return The columnValue.
       */
      @java.lang.Override
      public com.aliyun.ots.thirdparty.com.google.protobuf.ByteString getColumnValue() {
        return columnValue_;
      }
  
      public static final int FILTER_IF_MISSING_FIELD_NUMBER = 4;
      private boolean filterIfMissing_ = false;
      /**
       * <code>required bool filter_if_missing = 4;</code>
       * @return Whether the filterIfMissing field is set.
       */
      @java.lang.Override
      public boolean hasFilterIfMissing() {
        return ((bitField0_ & 0x00000008) != 0);
      }
      /**
       * <code>required bool filter_if_missing = 4;</code>
       * @return The filterIfMissing.
       */
      @java.lang.Override
      public boolean getFilterIfMissing() {
        return filterIfMissing_;
      }
  
      public static final int LATEST_VERSION_ONLY_FIELD_NUMBER = 5;
      private boolean latestVersionOnly_ = false;
      /**
       * <code>required bool latest_version_only = 5;</code>
       * @return Whether the latestVersionOnly field is set.
       */
      @java.lang.Override
      public boolean hasLatestVersionOnly() {
        return ((bitField0_ & 0x00000010) != 0);
      }
      /**
       * <code>required bool latest_version_only = 5;</code>
       * @return The latestVersionOnly.
       */
      @java.lang.Override
      public boolean getLatestVersionOnly() {
        return latestVersionOnly_;
      }
  
      public static final int VALUE_TRANS_RULE_FIELD_NUMBER = 6;
      private com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule valueTransRule_;
      /**
       * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
       * @return Whether the valueTransRule field is set.
       */
      @java.lang.Override
      public boolean hasValueTransRule() {
        return ((bitField0_ & 0x00000020) != 0);
      }
      /**
       * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
       * @return The valueTransRule.
       */
      @java.lang.Override
      public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule getValueTransRule() {
        return valueTransRule_ == null ? com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.getDefaultInstance() : valueTransRule_;
      }
      /**
       * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
       */
      @java.lang.Override
      public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRuleOrBuilder getValueTransRuleOrBuilder() {
        return valueTransRule_ == null ? com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.getDefaultInstance() : valueTransRule_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        if (!hasComparator()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasColumnName()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasColumnValue()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasFilterIfMissing()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasLatestVersionOnly()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (hasValueTransRule()) {
          if (!getValueTransRule().isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeEnum(1, comparator_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.writeString(output, 2, columnName_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          output.writeBytes(3, columnValue_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          output.writeBool(4, filterIfMissing_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          output.writeBool(5, latestVersionOnly_);
        }
        if (((bitField0_ & 0x00000020) != 0)) {
          output.writeMessage(6, getValueTransRule());
        }
        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.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, comparator_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.computeStringSize(2, columnName_);
        }
        if (((bitField0_ & 0x00000004) != 0)) {
          size += com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream
            .computeBytesSize(3, columnValue_);
        }
        if (((bitField0_ & 0x00000008) != 0)) {
          size += com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream
            .computeBoolSize(4, filterIfMissing_);
        }
        if (((bitField0_ & 0x00000010) != 0)) {
          size += com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream
            .computeBoolSize(5, latestVersionOnly_);
        }
        if (((bitField0_ & 0x00000020) != 0)) {
          size += com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, getValueTransRule());
        }
        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.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter)) {
          return super.equals(obj);
        }
        com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter other = (com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter) obj;
  
        if (hasComparator() != other.hasComparator()) return false;
        if (hasComparator()) {
          if (comparator_ != other.comparator_) return false;
        }
        if (hasColumnName() != other.hasColumnName()) return false;
        if (hasColumnName()) {
          if (!getColumnName()
              .equals(other.getColumnName())) return false;
        }
        if (hasColumnValue() != other.hasColumnValue()) return false;
        if (hasColumnValue()) {
          if (!getColumnValue()
              .equals(other.getColumnValue())) return false;
        }
        if (hasFilterIfMissing() != other.hasFilterIfMissing()) return false;
        if (hasFilterIfMissing()) {
          if (getFilterIfMissing()
              != other.getFilterIfMissing()) return false;
        }
        if (hasLatestVersionOnly() != other.hasLatestVersionOnly()) return false;
        if (hasLatestVersionOnly()) {
          if (getLatestVersionOnly()
              != other.getLatestVersionOnly()) return false;
        }
        if (hasValueTransRule() != other.hasValueTransRule()) return false;
        if (hasValueTransRule()) {
          if (!getValueTransRule()
              .equals(other.getValueTransRule())) 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 (hasComparator()) {
          hash = (37 * hash) + COMPARATOR_FIELD_NUMBER;
          hash = (53 * hash) + comparator_;
        }
        if (hasColumnName()) {
          hash = (37 * hash) + COLUMN_NAME_FIELD_NUMBER;
          hash = (53 * hash) + getColumnName().hashCode();
        }
        if (hasColumnValue()) {
          hash = (37 * hash) + COLUMN_VALUE_FIELD_NUMBER;
          hash = (53 * hash) + getColumnValue().hashCode();
        }
        if (hasFilterIfMissing()) {
          hash = (37 * hash) + FILTER_IF_MISSING_FIELD_NUMBER;
          hash = (53 * hash) + com.aliyun.ots.thirdparty.com.google.protobuf.Internal.hashBoolean(
              getFilterIfMissing());
        }
        if (hasLatestVersionOnly()) {
          hash = (37 * hash) + LATEST_VERSION_ONLY_FIELD_NUMBER;
          hash = (53 * hash) + com.aliyun.ots.thirdparty.com.google.protobuf.Internal.hashBoolean(
              getLatestVersionOnly());
        }
        if (hasValueTransRule()) {
          hash = (37 * hash) + VALUE_TRANS_RULE_FIELD_NUMBER;
          hash = (53 * hash) + getValueTransRule().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter parseFrom(
          java.nio.ByteBuffer data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter parseFrom(
          java.nio.ByteBuffer data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter parseFrom(byte[] data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter parseFrom(
          byte[] data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter parseFrom(
          java.io.InputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input);
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter parseDelimitedFrom(
          java.io.InputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.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.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter 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.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alicloud.openservices.tablestore.core.protocol.SingleColumnValueFilter}
       */
      public static final class Builder extends
          com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alicloud.openservices.tablestore.core.protocol.SingleColumnValueFilter)
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilterOrBuilder {
        public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_SingleColumnValueFilter_descriptor;
        }
  
        @java.lang.Override
        protected com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_SingleColumnValueFilter_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter.class, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter.Builder.class);
        }
  
        // Construct using com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }
  
        private Builder(
            com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
                  .alwaysUseFieldBuilders) {
            getValueTransRuleFieldBuilder();
          }
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          comparator_ = 1;
          columnName_ = "";
          columnValue_ = com.aliyun.ots.thirdparty.com.google.protobuf.ByteString.EMPTY;
          filterIfMissing_ = false;
          latestVersionOnly_ = false;
          valueTransRule_ = null;
          if (valueTransRuleBuilder_ != null) {
            valueTransRuleBuilder_.dispose();
            valueTransRuleBuilder_ = null;
          }
          return this;
        }
  
        @java.lang.Override
        public com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_SingleColumnValueFilter_descriptor;
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter getDefaultInstanceForType() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter.getDefaultInstance();
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter build() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter buildPartial() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter result = new com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.comparator_ = comparator_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.columnName_ = columnName_;
            to_bitField0_ |= 0x00000002;
          }
          if (((from_bitField0_ & 0x00000004) != 0)) {
            result.columnValue_ = columnValue_;
            to_bitField0_ |= 0x00000004;
          }
          if (((from_bitField0_ & 0x00000008) != 0)) {
            result.filterIfMissing_ = filterIfMissing_;
            to_bitField0_ |= 0x00000008;
          }
          if (((from_bitField0_ & 0x00000010) != 0)) {
            result.latestVersionOnly_ = latestVersionOnly_;
            to_bitField0_ |= 0x00000010;
          }
          if (((from_bitField0_ & 0x00000020) != 0)) {
            result.valueTransRule_ = valueTransRuleBuilder_ == null
                ? valueTransRule_
                : valueTransRuleBuilder_.build();
            to_bitField0_ |= 0x00000020;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @java.lang.Override
        public Builder mergeFrom(com.aliyun.ots.thirdparty.com.google.protobuf.Message other) {
          if (other instanceof com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter) {
            return mergeFrom((com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter other) {
          if (other == com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter.getDefaultInstance()) return this;
          if (other.hasComparator()) {
            setComparator(other.getComparator());
          }
          if (other.hasColumnName()) {
            columnName_ = other.columnName_;
            bitField0_ |= 0x00000002;
            onChanged();
          }
          if (other.hasColumnValue()) {
            setColumnValue(other.getColumnValue());
          }
          if (other.hasFilterIfMissing()) {
            setFilterIfMissing(other.getFilterIfMissing());
          }
          if (other.hasLatestVersionOnly()) {
            setLatestVersionOnly(other.getLatestVersionOnly());
          }
          if (other.hasValueTransRule()) {
            mergeValueTransRule(other.getValueTransRule());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasComparator()) {
            return false;
          }
          if (!hasColumnName()) {
            return false;
          }
          if (!hasColumnValue()) {
            return false;
          }
          if (!hasFilterIfMissing()) {
            return false;
          }
          if (!hasLatestVersionOnly()) {
            return false;
          }
          if (hasValueTransRule()) {
            if (!getValueTransRule().isInitialized()) {
              return false;
            }
          }
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
            com.aliyun.ots.thirdparty.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: {
                  int tmpRaw = input.readEnum();
                  com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ComparatorType tmpValue =
                      com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ComparatorType.forNumber(tmpRaw);
                  if (tmpValue == null) {
                    mergeUnknownVarintField(1, tmpRaw);
                  } else {
                    comparator_ = tmpRaw;
                    bitField0_ |= 0x00000001;
                  }
                  break;
                } // case 8
                case 18: {
                  columnName_ = input.readBytes();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                case 26: {
                  columnValue_ = input.readBytes();
                  bitField0_ |= 0x00000004;
                  break;
                } // case 26
                case 32: {
                  filterIfMissing_ = input.readBool();
                  bitField0_ |= 0x00000008;
                  break;
                } // case 32
                case 40: {
                  latestVersionOnly_ = input.readBool();
                  bitField0_ |= 0x00000010;
                  break;
                } // case 40
                case 50: {
                  input.readMessage(
                      getValueTransRuleFieldBuilder().getBuilder(),
                      extensionRegistry);
                  bitField0_ |= 0x00000020;
                  break;
                } // case 50
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private int comparator_ = 1;
        /**
         * <code>required .com.alicloud.openservices.tablestore.core.protocol.ComparatorType comparator = 1;</code>
         * @return Whether the comparator field is set.
         */
        @java.lang.Override public boolean hasComparator() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required .com.alicloud.openservices.tablestore.core.protocol.ComparatorType comparator = 1;</code>
         * @return The comparator.
         */
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ComparatorType getComparator() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ComparatorType result = com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ComparatorType.forNumber(comparator_);
          return result == null ? com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ComparatorType.CT_EQUAL : result;
        }
        /**
         * <code>required .com.alicloud.openservices.tablestore.core.protocol.ComparatorType comparator = 1;</code>
         * @param value The comparator to set.
         * @return This builder for chaining.
         */
        public Builder setComparator(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ComparatorType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          comparator_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>required .com.alicloud.openservices.tablestore.core.protocol.ComparatorType comparator = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearComparator() {
          bitField0_ = (bitField0_ & ~0x00000001);
          comparator_ = 1;
          onChanged();
          return this;
        }
  
        private java.lang.Object columnName_ = "";
        /**
         * <code>required string column_name = 2;</code>
         * @return Whether the columnName field is set.
         */
        public boolean hasColumnName() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required string column_name = 2;</code>
         * @return The columnName.
         */
        public java.lang.String getColumnName() {
          java.lang.Object ref = columnName_;
          if (!(ref instanceof java.lang.String)) {
            com.aliyun.ots.thirdparty.com.google.protobuf.ByteString bs =
                (com.aliyun.ots.thirdparty.com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              columnName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string column_name = 2;</code>
         * @return The bytes for columnName.
         */
        public com.aliyun.ots.thirdparty.com.google.protobuf.ByteString
            getColumnNameBytes() {
          java.lang.Object ref = columnName_;
          if (ref instanceof String) {
            com.aliyun.ots.thirdparty.com.google.protobuf.ByteString b = 
                com.aliyun.ots.thirdparty.com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            columnName_ = b;
            return b;
          } else {
            return (com.aliyun.ots.thirdparty.com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>required string column_name = 2;</code>
         * @param value The columnName to set.
         * @return This builder for chaining.
         */
        public Builder setColumnName(
            java.lang.String value) {
          if (value == null) { throw new NullPointerException(); }
          columnName_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required string column_name = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearColumnName() {
          columnName_ = getDefaultInstance().getColumnName();
          bitField0_ = (bitField0_ & ~0x00000002);
          onChanged();
          return this;
        }
        /**
         * <code>required string column_name = 2;</code>
         * @param value The bytes for columnName to set.
         * @return This builder for chaining.
         */
        public Builder setColumnNameBytes(
            com.aliyun.ots.thirdparty.com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          columnName_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
  
        private com.aliyun.ots.thirdparty.com.google.protobuf.ByteString columnValue_ = com.aliyun.ots.thirdparty.com.google.protobuf.ByteString.EMPTY;
        /**
         * <code>required bytes column_value = 3;</code>
         * @return Whether the columnValue field is set.
         */
        @java.lang.Override
        public boolean hasColumnValue() {
          return ((bitField0_ & 0x00000004) != 0);
        }
        /**
         * <code>required bytes column_value = 3;</code>
         * @return The columnValue.
         */
        @java.lang.Override
        public com.aliyun.ots.thirdparty.com.google.protobuf.ByteString getColumnValue() {
          return columnValue_;
        }
        /**
         * <code>required bytes column_value = 3;</code>
         * @param value The columnValue to set.
         * @return This builder for chaining.
         */
        public Builder setColumnValue(com.aliyun.ots.thirdparty.com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          columnValue_ = value;
          bitField0_ |= 0x00000004;
          onChanged();
          return this;
        }
        /**
         * <code>required bytes column_value = 3;</code>
         * @return This builder for chaining.
         */
        public Builder clearColumnValue() {
          bitField0_ = (bitField0_ & ~0x00000004);
          columnValue_ = getDefaultInstance().getColumnValue();
          onChanged();
          return this;
        }
  
        private boolean filterIfMissing_ ;
        /**
         * <code>required bool filter_if_missing = 4;</code>
         * @return Whether the filterIfMissing field is set.
         */
        @java.lang.Override
        public boolean hasFilterIfMissing() {
          return ((bitField0_ & 0x00000008) != 0);
        }
        /**
         * <code>required bool filter_if_missing = 4;</code>
         * @return The filterIfMissing.
         */
        @java.lang.Override
        public boolean getFilterIfMissing() {
          return filterIfMissing_;
        }
        /**
         * <code>required bool filter_if_missing = 4;</code>
         * @param value The filterIfMissing to set.
         * @return This builder for chaining.
         */
        public Builder setFilterIfMissing(boolean value) {
  
          filterIfMissing_ = value;
          bitField0_ |= 0x00000008;
          onChanged();
          return this;
        }
        /**
         * <code>required bool filter_if_missing = 4;</code>
         * @return This builder for chaining.
         */
        public Builder clearFilterIfMissing() {
          bitField0_ = (bitField0_ & ~0x00000008);
          filterIfMissing_ = false;
          onChanged();
          return this;
        }
  
        private boolean latestVersionOnly_ ;
        /**
         * <code>required bool latest_version_only = 5;</code>
         * @return Whether the latestVersionOnly field is set.
         */
        @java.lang.Override
        public boolean hasLatestVersionOnly() {
          return ((bitField0_ & 0x00000010) != 0);
        }
        /**
         * <code>required bool latest_version_only = 5;</code>
         * @return The latestVersionOnly.
         */
        @java.lang.Override
        public boolean getLatestVersionOnly() {
          return latestVersionOnly_;
        }
        /**
         * <code>required bool latest_version_only = 5;</code>
         * @param value The latestVersionOnly to set.
         * @return This builder for chaining.
         */
        public Builder setLatestVersionOnly(boolean value) {
  
          latestVersionOnly_ = value;
          bitField0_ |= 0x00000010;
          onChanged();
          return this;
        }
        /**
         * <code>required bool latest_version_only = 5;</code>
         * @return This builder for chaining.
         */
        public Builder clearLatestVersionOnly() {
          bitField0_ = (bitField0_ & ~0x00000010);
          latestVersionOnly_ = false;
          onChanged();
          return this;
        }
  
        private com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule valueTransRule_;
        private com.aliyun.ots.thirdparty.com.google.protobuf.SingleFieldBuilder<
            com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.Builder, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRuleOrBuilder> valueTransRuleBuilder_;
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
         * @return Whether the valueTransRule field is set.
         */
        public boolean hasValueTransRule() {
          return ((bitField0_ & 0x00000020) != 0);
        }
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
         * @return The valueTransRule.
         */
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule getValueTransRule() {
          if (valueTransRuleBuilder_ == null) {
            return valueTransRule_ == null ? com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.getDefaultInstance() : valueTransRule_;
          } else {
            return valueTransRuleBuilder_.getMessage();
          }
        }
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
         */
        public Builder setValueTransRule(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule value) {
          if (valueTransRuleBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            valueTransRule_ = value;
          } else {
            valueTransRuleBuilder_.setMessage(value);
          }
          bitField0_ |= 0x00000020;
          onChanged();
          return this;
        }
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
         */
        public Builder setValueTransRule(
            com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.Builder builderForValue) {
          if (valueTransRuleBuilder_ == null) {
            valueTransRule_ = builderForValue.build();
          } else {
            valueTransRuleBuilder_.setMessage(builderForValue.build());
          }
          bitField0_ |= 0x00000020;
          onChanged();
          return this;
        }
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
         */
        public Builder mergeValueTransRule(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule value) {
          if (valueTransRuleBuilder_ == null) {
            if (((bitField0_ & 0x00000020) != 0) &&
              valueTransRule_ != null &&
              valueTransRule_ != com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.getDefaultInstance()) {
              getValueTransRuleBuilder().mergeFrom(value);
            } else {
              valueTransRule_ = value;
            }
          } else {
            valueTransRuleBuilder_.mergeFrom(value);
          }
          if (valueTransRule_ != null) {
            bitField0_ |= 0x00000020;
            onChanged();
          }
          return this;
        }
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
         */
        public Builder clearValueTransRule() {
          bitField0_ = (bitField0_ & ~0x00000020);
          valueTransRule_ = null;
          if (valueTransRuleBuilder_ != null) {
            valueTransRuleBuilder_.dispose();
            valueTransRuleBuilder_ = null;
          }
          onChanged();
          return this;
        }
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
         */
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.Builder getValueTransRuleBuilder() {
          bitField0_ |= 0x00000020;
          onChanged();
          return getValueTransRuleFieldBuilder().getBuilder();
        }
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
         */
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRuleOrBuilder getValueTransRuleOrBuilder() {
          if (valueTransRuleBuilder_ != null) {
            return valueTransRuleBuilder_.getMessageOrBuilder();
          } else {
            return valueTransRule_ == null ?
                com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.getDefaultInstance() : valueTransRule_;
          }
        }
        /**
         * <code>optional .com.alicloud.openservices.tablestore.core.protocol.ValueTransferRule value_trans_rule = 6;</code>
         */
        private com.aliyun.ots.thirdparty.com.google.protobuf.SingleFieldBuilder<
            com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.Builder, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRuleOrBuilder> 
            getValueTransRuleFieldBuilder() {
          if (valueTransRuleBuilder_ == null) {
            valueTransRuleBuilder_ = new com.aliyun.ots.thirdparty.com.google.protobuf.SingleFieldBuilder<
                com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRule.Builder, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ValueTransferRuleOrBuilder>(
                    getValueTransRule(),
                    getParentForChildren(),
                    isClean());
            valueTransRule_ = null;
          }
          return valueTransRuleBuilder_;
        }
  
        // @@protoc_insertion_point(builder_scope:com.alicloud.openservices.tablestore.core.protocol.SingleColumnValueFilter)
      }
  
      // @@protoc_insertion_point(class_scope:com.alicloud.openservices.tablestore.core.protocol.SingleColumnValueFilter)
      private static final com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter();
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.aliyun.ots.thirdparty.com.google.protobuf.Parser<SingleColumnValueFilter>
          PARSER = new com.aliyun.ots.thirdparty.com.google.protobuf.AbstractParser<SingleColumnValueFilter>() {
        @java.lang.Override
        public SingleColumnValueFilter parsePartialFrom(
            com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
            com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static com.aliyun.ots.thirdparty.com.google.protobuf.Parser<SingleColumnValueFilter> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.aliyun.ots.thirdparty.com.google.protobuf.Parser<SingleColumnValueFilter> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.SingleColumnValueFilter getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface CompositeColumnValueFilterOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alicloud.openservices.tablestore.core.protocol.CompositeColumnValueFilter)
        com.aliyun.ots.thirdparty.com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>required .com.alicloud.openservices.tablestore.core.protocol.LogicalOperator combinator = 1;</code>
       * @return Whether the combinator field is set.
       */
      boolean hasCombinator();
      /**
       * <code>required .com.alicloud.openservices.tablestore.core.protocol.LogicalOperator combinator = 1;</code>
       * @return The combinator.
       */
      com.alicloud.openservices.tablestore.core.protocol.OtsFilter.LogicalOperator getCombinator();
  
      /**
       * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
       */
      java.util.List<com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter> 
          getSubFiltersList();
      /**
       * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
       */
      com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter getSubFilters(int index);
      /**
       * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
       */
      int getSubFiltersCount();
      /**
       * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
       */
      java.util.List<? extends com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterOrBuilder> 
          getSubFiltersOrBuilderList();
      /**
       * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
       */
      com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterOrBuilder getSubFiltersOrBuilder(
          int index);
    }
    /**
     * Protobuf type {@code com.alicloud.openservices.tablestore.core.protocol.CompositeColumnValueFilter}
     */
    public static final class CompositeColumnValueFilter extends
        com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:com.alicloud.openservices.tablestore.core.protocol.CompositeColumnValueFilter)
        CompositeColumnValueFilterOrBuilder {
    private static final long serialVersionUID = 0L;
      static {
        com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 2,
          /* suffix= */ "",
          CompositeColumnValueFilter.class.getName());
      }
      // Use CompositeColumnValueFilter.newBuilder() to construct.
      private CompositeColumnValueFilter(com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
      }
      private CompositeColumnValueFilter() {
        combinator_ = 1;
        subFilters_ = java.util.Collections.emptyList();
      }
  
      public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_CompositeColumnValueFilter_descriptor;
      }
  
      @java.lang.Override
      protected com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_CompositeColumnValueFilter_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter.class, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter.Builder.class);
      }
  
      private int bitField0_;
      public static final int COMBINATOR_FIELD_NUMBER = 1;
      private int combinator_ = 1;
      /**
       * <code>required .com.alicloud.openservices.tablestore.core.protocol.LogicalOperator combinator = 1;</code>
       * @return Whether the combinator field is set.
       */
      @java.lang.Override public boolean hasCombinator() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .com.alicloud.openservices.tablestore.core.protocol.LogicalOperator combinator = 1;</code>
       * @return The combinator.
       */
      @java.lang.Override public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.LogicalOperator getCombinator() {
        com.alicloud.openservices.tablestore.core.protocol.OtsFilter.LogicalOperator result = com.alicloud.openservices.tablestore.core.protocol.OtsFilter.LogicalOperator.forNumber(combinator_);
        return result == null ? com.alicloud.openservices.tablestore.core.protocol.OtsFilter.LogicalOperator.LO_NOT : result;
      }
  
      public static final int SUB_FILTERS_FIELD_NUMBER = 2;
      @SuppressWarnings("serial")
      private java.util.List<com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter> subFilters_;
      /**
       * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
       */
      @java.lang.Override
      public java.util.List<com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter> getSubFiltersList() {
        return subFilters_;
      }
      /**
       * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
       */
      @java.lang.Override
      public java.util.List<? extends com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterOrBuilder> 
          getSubFiltersOrBuilderList() {
        return subFilters_;
      }
      /**
       * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
       */
      @java.lang.Override
      public int getSubFiltersCount() {
        return subFilters_.size();
      }
      /**
       * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
       */
      @java.lang.Override
      public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter getSubFilters(int index) {
        return subFilters_.get(index);
      }
      /**
       * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
       */
      @java.lang.Override
      public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterOrBuilder getSubFiltersOrBuilder(
          int index) {
        return subFilters_.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;
  
        if (!hasCombinator()) {
          memoizedIsInitialized = 0;
          return false;
        }
        for (int i = 0; i < getSubFiltersCount(); i++) {
          if (!getSubFilters(i).isInitialized()) {
            memoizedIsInitialized = 0;
            return false;
          }
        }
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeEnum(1, combinator_);
        }
        for (int i = 0; i < subFilters_.size(); i++) {
          output.writeMessage(2, subFilters_.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.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, combinator_);
        }
        for (int i = 0; i < subFilters_.size(); i++) {
          size += com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, subFilters_.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.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter)) {
          return super.equals(obj);
        }
        com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter other = (com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter) obj;
  
        if (hasCombinator() != other.hasCombinator()) return false;
        if (hasCombinator()) {
          if (combinator_ != other.combinator_) return false;
        }
        if (!getSubFiltersList()
            .equals(other.getSubFiltersList())) 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 (hasCombinator()) {
          hash = (37 * hash) + COMBINATOR_FIELD_NUMBER;
          hash = (53 * hash) + combinator_;
        }
        if (getSubFiltersCount() > 0) {
          hash = (37 * hash) + SUB_FILTERS_FIELD_NUMBER;
          hash = (53 * hash) + getSubFiltersList().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter parseFrom(
          java.nio.ByteBuffer data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter parseFrom(
          java.nio.ByteBuffer data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter parseFrom(byte[] data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter parseFrom(
          byte[] data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter parseFrom(
          java.io.InputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input);
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter parseDelimitedFrom(
          java.io.InputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.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.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter 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.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alicloud.openservices.tablestore.core.protocol.CompositeColumnValueFilter}
       */
      public static final class Builder extends
          com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alicloud.openservices.tablestore.core.protocol.CompositeColumnValueFilter)
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilterOrBuilder {
        public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_CompositeColumnValueFilter_descriptor;
        }
  
        @java.lang.Override
        protected com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_CompositeColumnValueFilter_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter.class, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter.Builder.class);
        }
  
        // Construct using com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter.newBuilder()
        private Builder() {
  
        }
  
        private Builder(
            com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          combinator_ = 1;
          if (subFiltersBuilder_ == null) {
            subFilters_ = java.util.Collections.emptyList();
          } else {
            subFilters_ = null;
            subFiltersBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }
  
        @java.lang.Override
        public com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_CompositeColumnValueFilter_descriptor;
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter getDefaultInstanceForType() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter.getDefaultInstance();
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter build() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter buildPartial() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter result = new com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter(this);
          buildPartialRepeatedFields(result);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartialRepeatedFields(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter result) {
          if (subFiltersBuilder_ == null) {
            if (((bitField0_ & 0x00000002) != 0)) {
              subFilters_ = java.util.Collections.unmodifiableList(subFilters_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.subFilters_ = subFilters_;
          } else {
            result.subFilters_ = subFiltersBuilder_.build();
          }
        }
  
        private void buildPartial0(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.combinator_ = combinator_;
            to_bitField0_ |= 0x00000001;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @java.lang.Override
        public Builder mergeFrom(com.aliyun.ots.thirdparty.com.google.protobuf.Message other) {
          if (other instanceof com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter) {
            return mergeFrom((com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter other) {
          if (other == com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter.getDefaultInstance()) return this;
          if (other.hasCombinator()) {
            setCombinator(other.getCombinator());
          }
          if (subFiltersBuilder_ == null) {
            if (!other.subFilters_.isEmpty()) {
              if (subFilters_.isEmpty()) {
                subFilters_ = other.subFilters_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureSubFiltersIsMutable();
                subFilters_.addAll(other.subFilters_);
              }
              onChanged();
            }
          } else {
            if (!other.subFilters_.isEmpty()) {
              if (subFiltersBuilder_.isEmpty()) {
                subFiltersBuilder_.dispose();
                subFiltersBuilder_ = null;
                subFilters_ = other.subFilters_;
                bitField0_ = (bitField0_ & ~0x00000002);
                subFiltersBuilder_ = 
                  com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getSubFiltersFieldBuilder() : null;
              } else {
                subFiltersBuilder_.addAllMessages(other.subFilters_);
              }
            }
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasCombinator()) {
            return false;
          }
          for (int i = 0; i < getSubFiltersCount(); i++) {
            if (!getSubFilters(i).isInitialized()) {
              return false;
            }
          }
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
            com.aliyun.ots.thirdparty.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: {
                  int tmpRaw = input.readEnum();
                  com.alicloud.openservices.tablestore.core.protocol.OtsFilter.LogicalOperator tmpValue =
                      com.alicloud.openservices.tablestore.core.protocol.OtsFilter.LogicalOperator.forNumber(tmpRaw);
                  if (tmpValue == null) {
                    mergeUnknownVarintField(1, tmpRaw);
                  } else {
                    combinator_ = tmpRaw;
                    bitField0_ |= 0x00000001;
                  }
                  break;
                } // case 8
                case 18: {
                  com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter m =
                      input.readMessage(
                          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.parser(),
                          extensionRegistry);
                  if (subFiltersBuilder_ == null) {
                    ensureSubFiltersIsMutable();
                    subFilters_.add(m);
                  } else {
                    subFiltersBuilder_.addMessage(m);
                  }
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private int combinator_ = 1;
        /**
         * <code>required .com.alicloud.openservices.tablestore.core.protocol.LogicalOperator combinator = 1;</code>
         * @return Whether the combinator field is set.
         */
        @java.lang.Override public boolean hasCombinator() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required .com.alicloud.openservices.tablestore.core.protocol.LogicalOperator combinator = 1;</code>
         * @return The combinator.
         */
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.LogicalOperator getCombinator() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.LogicalOperator result = com.alicloud.openservices.tablestore.core.protocol.OtsFilter.LogicalOperator.forNumber(combinator_);
          return result == null ? com.alicloud.openservices.tablestore.core.protocol.OtsFilter.LogicalOperator.LO_NOT : result;
        }
        /**
         * <code>required .com.alicloud.openservices.tablestore.core.protocol.LogicalOperator combinator = 1;</code>
         * @param value The combinator to set.
         * @return This builder for chaining.
         */
        public Builder setCombinator(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.LogicalOperator value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          combinator_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>required .com.alicloud.openservices.tablestore.core.protocol.LogicalOperator combinator = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearCombinator() {
          bitField0_ = (bitField0_ & ~0x00000001);
          combinator_ = 1;
          onChanged();
          return this;
        }
  
        private java.util.List<com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter> subFilters_ =
          java.util.Collections.emptyList();
        private void ensureSubFiltersIsMutable() {
          if (!((bitField0_ & 0x00000002) != 0)) {
            subFilters_ = new java.util.ArrayList<com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter>(subFilters_);
            bitField0_ |= 0x00000002;
           }
        }
  
        private com.aliyun.ots.thirdparty.com.google.protobuf.RepeatedFieldBuilder<
            com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.Builder, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterOrBuilder> subFiltersBuilder_;
  
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public java.util.List<com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter> getSubFiltersList() {
          if (subFiltersBuilder_ == null) {
            return java.util.Collections.unmodifiableList(subFilters_);
          } else {
            return subFiltersBuilder_.getMessageList();
          }
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public int getSubFiltersCount() {
          if (subFiltersBuilder_ == null) {
            return subFilters_.size();
          } else {
            return subFiltersBuilder_.getCount();
          }
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter getSubFilters(int index) {
          if (subFiltersBuilder_ == null) {
            return subFilters_.get(index);
          } else {
            return subFiltersBuilder_.getMessage(index);
          }
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public Builder setSubFilters(
            int index, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter value) {
          if (subFiltersBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSubFiltersIsMutable();
            subFilters_.set(index, value);
            onChanged();
          } else {
            subFiltersBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public Builder setSubFilters(
            int index, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.Builder builderForValue) {
          if (subFiltersBuilder_ == null) {
            ensureSubFiltersIsMutable();
            subFilters_.set(index, builderForValue.build());
            onChanged();
          } else {
            subFiltersBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public Builder addSubFilters(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter value) {
          if (subFiltersBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSubFiltersIsMutable();
            subFilters_.add(value);
            onChanged();
          } else {
            subFiltersBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public Builder addSubFilters(
            int index, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter value) {
          if (subFiltersBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureSubFiltersIsMutable();
            subFilters_.add(index, value);
            onChanged();
          } else {
            subFiltersBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public Builder addSubFilters(
            com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.Builder builderForValue) {
          if (subFiltersBuilder_ == null) {
            ensureSubFiltersIsMutable();
            subFilters_.add(builderForValue.build());
            onChanged();
          } else {
            subFiltersBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public Builder addSubFilters(
            int index, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.Builder builderForValue) {
          if (subFiltersBuilder_ == null) {
            ensureSubFiltersIsMutable();
            subFilters_.add(index, builderForValue.build());
            onChanged();
          } else {
            subFiltersBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public Builder addAllSubFilters(
            java.lang.Iterable<? extends com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter> values) {
          if (subFiltersBuilder_ == null) {
            ensureSubFiltersIsMutable();
            com.aliyun.ots.thirdparty.com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, subFilters_);
            onChanged();
          } else {
            subFiltersBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public Builder clearSubFilters() {
          if (subFiltersBuilder_ == null) {
            subFilters_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            subFiltersBuilder_.clear();
          }
          return this;
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public Builder removeSubFilters(int index) {
          if (subFiltersBuilder_ == null) {
            ensureSubFiltersIsMutable();
            subFilters_.remove(index);
            onChanged();
          } else {
            subFiltersBuilder_.remove(index);
          }
          return this;
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.Builder getSubFiltersBuilder(
            int index) {
          return getSubFiltersFieldBuilder().getBuilder(index);
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterOrBuilder getSubFiltersOrBuilder(
            int index) {
          if (subFiltersBuilder_ == null) {
            return subFilters_.get(index);  } else {
            return subFiltersBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public java.util.List<? extends com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterOrBuilder> 
             getSubFiltersOrBuilderList() {
          if (subFiltersBuilder_ != null) {
            return subFiltersBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(subFilters_);
          }
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.Builder addSubFiltersBuilder() {
          return getSubFiltersFieldBuilder().addBuilder(
              com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.getDefaultInstance());
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.Builder addSubFiltersBuilder(
            int index) {
          return getSubFiltersFieldBuilder().addBuilder(
              index, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.getDefaultInstance());
        }
        /**
         * <code>repeated .com.alicloud.openservices.tablestore.core.protocol.Filter sub_filters = 2;</code>
         */
        public java.util.List<com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.Builder> 
             getSubFiltersBuilderList() {
          return getSubFiltersFieldBuilder().getBuilderList();
        }
        private com.aliyun.ots.thirdparty.com.google.protobuf.RepeatedFieldBuilder<
            com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.Builder, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterOrBuilder> 
            getSubFiltersFieldBuilder() {
          if (subFiltersBuilder_ == null) {
            subFiltersBuilder_ = new com.aliyun.ots.thirdparty.com.google.protobuf.RepeatedFieldBuilder<
                com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.Builder, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterOrBuilder>(
                    subFilters_,
                    ((bitField0_ & 0x00000002) != 0),
                    getParentForChildren(),
                    isClean());
            subFilters_ = null;
          }
          return subFiltersBuilder_;
        }
  
        // @@protoc_insertion_point(builder_scope:com.alicloud.openservices.tablestore.core.protocol.CompositeColumnValueFilter)
      }
  
      // @@protoc_insertion_point(class_scope:com.alicloud.openservices.tablestore.core.protocol.CompositeColumnValueFilter)
      private static final com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter();
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.aliyun.ots.thirdparty.com.google.protobuf.Parser<CompositeColumnValueFilter>
          PARSER = new com.aliyun.ots.thirdparty.com.google.protobuf.AbstractParser<CompositeColumnValueFilter>() {
        @java.lang.Override
        public CompositeColumnValueFilter parsePartialFrom(
            com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
            com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static com.aliyun.ots.thirdparty.com.google.protobuf.Parser<CompositeColumnValueFilter> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.aliyun.ots.thirdparty.com.google.protobuf.Parser<CompositeColumnValueFilter> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.CompositeColumnValueFilter getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface ColumnPaginationFilterOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alicloud.openservices.tablestore.core.protocol.ColumnPaginationFilter)
        com.aliyun.ots.thirdparty.com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>required int32 offset = 1;</code>
       * @return Whether the offset field is set.
       */
      boolean hasOffset();
      /**
       * <code>required int32 offset = 1;</code>
       * @return The offset.
       */
      int getOffset();
  
      /**
       * <code>required int32 limit = 2;</code>
       * @return Whether the limit field is set.
       */
      boolean hasLimit();
      /**
       * <code>required int32 limit = 2;</code>
       * @return The limit.
       */
      int getLimit();
    }
    /**
     * Protobuf type {@code com.alicloud.openservices.tablestore.core.protocol.ColumnPaginationFilter}
     */
    public static final class ColumnPaginationFilter extends
        com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:com.alicloud.openservices.tablestore.core.protocol.ColumnPaginationFilter)
        ColumnPaginationFilterOrBuilder {
    private static final long serialVersionUID = 0L;
      static {
        com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 2,
          /* suffix= */ "",
          ColumnPaginationFilter.class.getName());
      }
      // Use ColumnPaginationFilter.newBuilder() to construct.
      private ColumnPaginationFilter(com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
      }
      private ColumnPaginationFilter() {
      }
  
      public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_ColumnPaginationFilter_descriptor;
      }
  
      @java.lang.Override
      protected com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_ColumnPaginationFilter_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter.class, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter.Builder.class);
      }
  
      private int bitField0_;
      public static final int OFFSET_FIELD_NUMBER = 1;
      private int offset_ = 0;
      /**
       * <code>required int32 offset = 1;</code>
       * @return Whether the offset field is set.
       */
      @java.lang.Override
      public boolean hasOffset() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required int32 offset = 1;</code>
       * @return The offset.
       */
      @java.lang.Override
      public int getOffset() {
        return offset_;
      }
  
      public static final int LIMIT_FIELD_NUMBER = 2;
      private int limit_ = 0;
      /**
       * <code>required int32 limit = 2;</code>
       * @return Whether the limit field is set.
       */
      @java.lang.Override
      public boolean hasLimit() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <code>required int32 limit = 2;</code>
       * @return The limit.
       */
      @java.lang.Override
      public int getLimit() {
        return limit_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        if (!hasOffset()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasLimit()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeInt32(1, offset_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeInt32(2, limit_);
        }
        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.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, offset_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, limit_);
        }
        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.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter)) {
          return super.equals(obj);
        }
        com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter other = (com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter) obj;
  
        if (hasOffset() != other.hasOffset()) return false;
        if (hasOffset()) {
          if (getOffset()
              != other.getOffset()) return false;
        }
        if (hasLimit() != other.hasLimit()) return false;
        if (hasLimit()) {
          if (getLimit()
              != other.getLimit()) 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 (hasOffset()) {
          hash = (37 * hash) + OFFSET_FIELD_NUMBER;
          hash = (53 * hash) + getOffset();
        }
        if (hasLimit()) {
          hash = (37 * hash) + LIMIT_FIELD_NUMBER;
          hash = (53 * hash) + getLimit();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter parseFrom(
          java.nio.ByteBuffer data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter parseFrom(
          java.nio.ByteBuffer data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter parseFrom(byte[] data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter parseFrom(
          byte[] data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter parseFrom(
          java.io.InputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input);
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter parseDelimitedFrom(
          java.io.InputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.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.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter 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.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alicloud.openservices.tablestore.core.protocol.ColumnPaginationFilter}
       */
      public static final class Builder extends
          com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alicloud.openservices.tablestore.core.protocol.ColumnPaginationFilter)
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilterOrBuilder {
        public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_ColumnPaginationFilter_descriptor;
        }
  
        @java.lang.Override
        protected com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_ColumnPaginationFilter_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter.class, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter.Builder.class);
        }
  
        // Construct using com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter.newBuilder()
        private Builder() {
  
        }
  
        private Builder(
            com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          offset_ = 0;
          limit_ = 0;
          return this;
        }
  
        @java.lang.Override
        public com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_ColumnPaginationFilter_descriptor;
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter getDefaultInstanceForType() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter.getDefaultInstance();
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter build() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter buildPartial() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter result = new com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.offset_ = offset_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.limit_ = limit_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @java.lang.Override
        public Builder mergeFrom(com.aliyun.ots.thirdparty.com.google.protobuf.Message other) {
          if (other instanceof com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter) {
            return mergeFrom((com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter other) {
          if (other == com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter.getDefaultInstance()) return this;
          if (other.hasOffset()) {
            setOffset(other.getOffset());
          }
          if (other.hasLimit()) {
            setLimit(other.getLimit());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasOffset()) {
            return false;
          }
          if (!hasLimit()) {
            return false;
          }
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
            com.aliyun.ots.thirdparty.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: {
                  offset_ = input.readInt32();
                  bitField0_ |= 0x00000001;
                  break;
                } // case 8
                case 16: {
                  limit_ = input.readInt32();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 16
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private int offset_ ;
        /**
         * <code>required int32 offset = 1;</code>
         * @return Whether the offset field is set.
         */
        @java.lang.Override
        public boolean hasOffset() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required int32 offset = 1;</code>
         * @return The offset.
         */
        @java.lang.Override
        public int getOffset() {
          return offset_;
        }
        /**
         * <code>required int32 offset = 1;</code>
         * @param value The offset to set.
         * @return This builder for chaining.
         */
        public Builder setOffset(int value) {
  
          offset_ = value;
          bitField0_ |= 0x00000001;
          onChanged();
          return this;
        }
        /**
         * <code>required int32 offset = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearOffset() {
          bitField0_ = (bitField0_ & ~0x00000001);
          offset_ = 0;
          onChanged();
          return this;
        }
  
        private int limit_ ;
        /**
         * <code>required int32 limit = 2;</code>
         * @return Whether the limit field is set.
         */
        @java.lang.Override
        public boolean hasLimit() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <code>required int32 limit = 2;</code>
         * @return The limit.
         */
        @java.lang.Override
        public int getLimit() {
          return limit_;
        }
        /**
         * <code>required int32 limit = 2;</code>
         * @param value The limit to set.
         * @return This builder for chaining.
         */
        public Builder setLimit(int value) {
  
          limit_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <code>required int32 limit = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearLimit() {
          bitField0_ = (bitField0_ & ~0x00000002);
          limit_ = 0;
          onChanged();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:com.alicloud.openservices.tablestore.core.protocol.ColumnPaginationFilter)
      }
  
      // @@protoc_insertion_point(class_scope:com.alicloud.openservices.tablestore.core.protocol.ColumnPaginationFilter)
      private static final com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter();
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.aliyun.ots.thirdparty.com.google.protobuf.Parser<ColumnPaginationFilter>
          PARSER = new com.aliyun.ots.thirdparty.com.google.protobuf.AbstractParser<ColumnPaginationFilter>() {
        @java.lang.Override
        public ColumnPaginationFilter parsePartialFrom(
            com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
            com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static com.aliyun.ots.thirdparty.com.google.protobuf.Parser<ColumnPaginationFilter> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.aliyun.ots.thirdparty.com.google.protobuf.Parser<ColumnPaginationFilter> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.ColumnPaginationFilter getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    public interface FilterOrBuilder extends
        // @@protoc_insertion_point(interface_extends:com.alicloud.openservices.tablestore.core.protocol.Filter)
        com.aliyun.ots.thirdparty.com.google.protobuf.MessageOrBuilder {
  
      /**
       * <code>required .com.alicloud.openservices.tablestore.core.protocol.FilterType type = 1;</code>
       * @return Whether the type field is set.
       */
      boolean hasType();
      /**
       * <code>required .com.alicloud.openservices.tablestore.core.protocol.FilterType type = 1;</code>
       * @return The type.
       */
      com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterType getType();
  
      /**
       * <pre>
       * Serialized string of filter of the type
       * </pre>
       *
       * <code>required bytes filter = 2;</code>
       * @return Whether the filter field is set.
       */
      boolean hasFilter();
      /**
       * <pre>
       * Serialized string of filter of the type
       * </pre>
       *
       * <code>required bytes filter = 2;</code>
       * @return The filter.
       */
      com.aliyun.ots.thirdparty.com.google.protobuf.ByteString getFilter();
    }
    /**
     * Protobuf type {@code com.alicloud.openservices.tablestore.core.protocol.Filter}
     */
    public static final class Filter extends
        com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:com.alicloud.openservices.tablestore.core.protocol.Filter)
        FilterOrBuilder {
    private static final long serialVersionUID = 0L;
      static {
        com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.validateProtobufGencodeVersion(
          com.aliyun.ots.thirdparty.com.google.protobuf.RuntimeVersion.RuntimeDomain.PUBLIC,
          /* major= */ 4,
          /* minor= */ 28,
          /* patch= */ 2,
          /* suffix= */ "",
          Filter.class.getName());
      }
      // Use Filter.newBuilder() to construct.
      private Filter(com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
      }
      private Filter() {
        type_ = 1;
        filter_ = com.aliyun.ots.thirdparty.com.google.protobuf.ByteString.EMPTY;
      }
  
      public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_Filter_descriptor;
      }
  
      @java.lang.Override
      protected com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_Filter_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.class, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.Builder.class);
      }
  
      private int bitField0_;
      public static final int TYPE_FIELD_NUMBER = 1;
      private int type_ = 1;
      /**
       * <code>required .com.alicloud.openservices.tablestore.core.protocol.FilterType type = 1;</code>
       * @return Whether the type field is set.
       */
      @java.lang.Override public boolean hasType() {
        return ((bitField0_ & 0x00000001) != 0);
      }
      /**
       * <code>required .com.alicloud.openservices.tablestore.core.protocol.FilterType type = 1;</code>
       * @return The type.
       */
      @java.lang.Override public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterType getType() {
        com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterType result = com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterType.forNumber(type_);
        return result == null ? com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterType.FT_SINGLE_COLUMN_VALUE : result;
      }
  
      public static final int FILTER_FIELD_NUMBER = 2;
      private com.aliyun.ots.thirdparty.com.google.protobuf.ByteString filter_ = com.aliyun.ots.thirdparty.com.google.protobuf.ByteString.EMPTY;
      /**
       * <pre>
       * Serialized string of filter of the type
       * </pre>
       *
       * <code>required bytes filter = 2;</code>
       * @return Whether the filter field is set.
       */
      @java.lang.Override
      public boolean hasFilter() {
        return ((bitField0_ & 0x00000002) != 0);
      }
      /**
       * <pre>
       * Serialized string of filter of the type
       * </pre>
       *
       * <code>required bytes filter = 2;</code>
       * @return The filter.
       */
      @java.lang.Override
      public com.aliyun.ots.thirdparty.com.google.protobuf.ByteString getFilter() {
        return filter_;
      }
  
      private byte memoizedIsInitialized = -1;
      @java.lang.Override
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;
  
        if (!hasType()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasFilter()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }
  
      @java.lang.Override
      public void writeTo(com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        if (((bitField0_ & 0x00000001) != 0)) {
          output.writeEnum(1, type_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          output.writeBytes(2, filter_);
        }
        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.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream
            .computeEnumSize(1, type_);
        }
        if (((bitField0_ & 0x00000002) != 0)) {
          size += com.aliyun.ots.thirdparty.com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, filter_);
        }
        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.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter)) {
          return super.equals(obj);
        }
        com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter other = (com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter) obj;
  
        if (hasType() != other.hasType()) return false;
        if (hasType()) {
          if (type_ != other.type_) return false;
        }
        if (hasFilter() != other.hasFilter()) return false;
        if (hasFilter()) {
          if (!getFilter()
              .equals(other.getFilter())) 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 (hasType()) {
          hash = (37 * hash) + TYPE_FIELD_NUMBER;
          hash = (53 * hash) + type_;
        }
        if (hasFilter()) {
          hash = (37 * hash) + FILTER_FIELD_NUMBER;
          hash = (53 * hash) + getFilter().hashCode();
        }
        hash = (29 * hash) + getUnknownFields().hashCode();
        memoizedHashCode = hash;
        return hash;
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter parseFrom(
          java.nio.ByteBuffer data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter parseFrom(
          java.nio.ByteBuffer data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.ByteString data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter parseFrom(byte[] data)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter parseFrom(
          byte[] data,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter parseFrom(
          java.io.InputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input, extensionRegistry);
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input);
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter parseDelimitedFrom(
          java.io.InputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseDelimitedWithIOException(PARSER, input, extensionRegistry);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage
            .parseWithIOException(PARSER, input);
      }
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter parseFrom(
          com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
          com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return com.aliyun.ots.thirdparty.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.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter 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.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code com.alicloud.openservices.tablestore.core.protocol.Filter}
       */
      public static final class Builder extends
          com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.Builder<Builder> implements
          // @@protoc_insertion_point(builder_implements:com.alicloud.openservices.tablestore.core.protocol.Filter)
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterOrBuilder {
        public static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_Filter_descriptor;
        }
  
        @java.lang.Override
        protected com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_Filter_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.class, com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.Builder.class);
        }
  
        // Construct using com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.newBuilder()
        private Builder() {
  
        }
  
        private Builder(
            com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
  
        }
        @java.lang.Override
        public Builder clear() {
          super.clear();
          bitField0_ = 0;
          type_ = 1;
          filter_ = com.aliyun.ots.thirdparty.com.google.protobuf.ByteString.EMPTY;
          return this;
        }
  
        @java.lang.Override
        public com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.internal_static_com_alicloud_openservices_tablestore_core_protocol_Filter_descriptor;
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter getDefaultInstanceForType() {
          return com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.getDefaultInstance();
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter build() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }
  
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter buildPartial() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter result = new com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter(this);
          if (bitField0_ != 0) { buildPartial0(result); }
          onBuilt();
          return result;
        }
  
        private void buildPartial0(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter result) {
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) != 0)) {
            result.type_ = type_;
            to_bitField0_ |= 0x00000001;
          }
          if (((from_bitField0_ & 0x00000002) != 0)) {
            result.filter_ = filter_;
            to_bitField0_ |= 0x00000002;
          }
          result.bitField0_ |= to_bitField0_;
        }
  
        @java.lang.Override
        public Builder mergeFrom(com.aliyun.ots.thirdparty.com.google.protobuf.Message other) {
          if (other instanceof com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter) {
            return mergeFrom((com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }
  
        public Builder mergeFrom(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter other) {
          if (other == com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter.getDefaultInstance()) return this;
          if (other.hasType()) {
            setType(other.getType());
          }
          if (other.hasFilter()) {
            setFilter(other.getFilter());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          onChanged();
          return this;
        }
  
        @java.lang.Override
        public final boolean isInitialized() {
          if (!hasType()) {
            return false;
          }
          if (!hasFilter()) {
            return false;
          }
          return true;
        }
  
        @java.lang.Override
        public Builder mergeFrom(
            com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
            com.aliyun.ots.thirdparty.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: {
                  int tmpRaw = input.readEnum();
                  com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterType tmpValue =
                      com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterType.forNumber(tmpRaw);
                  if (tmpValue == null) {
                    mergeUnknownVarintField(1, tmpRaw);
                  } else {
                    type_ = tmpRaw;
                    bitField0_ |= 0x00000001;
                  }
                  break;
                } // case 8
                case 18: {
                  filter_ = input.readBytes();
                  bitField0_ |= 0x00000002;
                  break;
                } // case 18
                default: {
                  if (!super.parseUnknownField(input, extensionRegistry, tag)) {
                    done = true; // was an endgroup tag
                  }
                  break;
                } // default:
              } // switch (tag)
            } // while (!done)
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.unwrapIOException();
          } finally {
            onChanged();
          } // finally
          return this;
        }
        private int bitField0_;
  
        private int type_ = 1;
        /**
         * <code>required .com.alicloud.openservices.tablestore.core.protocol.FilterType type = 1;</code>
         * @return Whether the type field is set.
         */
        @java.lang.Override public boolean hasType() {
          return ((bitField0_ & 0x00000001) != 0);
        }
        /**
         * <code>required .com.alicloud.openservices.tablestore.core.protocol.FilterType type = 1;</code>
         * @return The type.
         */
        @java.lang.Override
        public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterType getType() {
          com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterType result = com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterType.forNumber(type_);
          return result == null ? com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterType.FT_SINGLE_COLUMN_VALUE : result;
        }
        /**
         * <code>required .com.alicloud.openservices.tablestore.core.protocol.FilterType type = 1;</code>
         * @param value The type to set.
         * @return This builder for chaining.
         */
        public Builder setType(com.alicloud.openservices.tablestore.core.protocol.OtsFilter.FilterType value) {
          if (value == null) {
            throw new NullPointerException();
          }
          bitField0_ |= 0x00000001;
          type_ = value.getNumber();
          onChanged();
          return this;
        }
        /**
         * <code>required .com.alicloud.openservices.tablestore.core.protocol.FilterType type = 1;</code>
         * @return This builder for chaining.
         */
        public Builder clearType() {
          bitField0_ = (bitField0_ & ~0x00000001);
          type_ = 1;
          onChanged();
          return this;
        }
  
        private com.aliyun.ots.thirdparty.com.google.protobuf.ByteString filter_ = com.aliyun.ots.thirdparty.com.google.protobuf.ByteString.EMPTY;
        /**
         * <pre>
         * Serialized string of filter of the type
         * </pre>
         *
         * <code>required bytes filter = 2;</code>
         * @return Whether the filter field is set.
         */
        @java.lang.Override
        public boolean hasFilter() {
          return ((bitField0_ & 0x00000002) != 0);
        }
        /**
         * <pre>
         * Serialized string of filter of the type
         * </pre>
         *
         * <code>required bytes filter = 2;</code>
         * @return The filter.
         */
        @java.lang.Override
        public com.aliyun.ots.thirdparty.com.google.protobuf.ByteString getFilter() {
          return filter_;
        }
        /**
         * <pre>
         * Serialized string of filter of the type
         * </pre>
         *
         * <code>required bytes filter = 2;</code>
         * @param value The filter to set.
         * @return This builder for chaining.
         */
        public Builder setFilter(com.aliyun.ots.thirdparty.com.google.protobuf.ByteString value) {
          if (value == null) { throw new NullPointerException(); }
          filter_ = value;
          bitField0_ |= 0x00000002;
          onChanged();
          return this;
        }
        /**
         * <pre>
         * Serialized string of filter of the type
         * </pre>
         *
         * <code>required bytes filter = 2;</code>
         * @return This builder for chaining.
         */
        public Builder clearFilter() {
          bitField0_ = (bitField0_ & ~0x00000002);
          filter_ = getDefaultInstance().getFilter();
          onChanged();
          return this;
        }
  
        // @@protoc_insertion_point(builder_scope:com.alicloud.openservices.tablestore.core.protocol.Filter)
      }
  
      // @@protoc_insertion_point(class_scope:com.alicloud.openservices.tablestore.core.protocol.Filter)
      private static final com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter DEFAULT_INSTANCE;
      static {
        DEFAULT_INSTANCE = new com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter();
      }
  
      public static com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter getDefaultInstance() {
        return DEFAULT_INSTANCE;
      }
  
      private static final com.aliyun.ots.thirdparty.com.google.protobuf.Parser<Filter>
          PARSER = new com.aliyun.ots.thirdparty.com.google.protobuf.AbstractParser<Filter>() {
        @java.lang.Override
        public Filter parsePartialFrom(
            com.aliyun.ots.thirdparty.com.google.protobuf.CodedInputStream input,
            com.aliyun.ots.thirdparty.com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException {
          Builder builder = newBuilder();
          try {
            builder.mergeFrom(input, extensionRegistry);
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(builder.buildPartial());
          } catch (com.aliyun.ots.thirdparty.com.google.protobuf.UninitializedMessageException e) {
            throw e.asInvalidProtocolBufferException().setUnfinishedMessage(builder.buildPartial());
          } catch (java.io.IOException e) {
            throw new com.aliyun.ots.thirdparty.com.google.protobuf.InvalidProtocolBufferException(e)
                .setUnfinishedMessage(builder.buildPartial());
          }
          return builder.buildPartial();
        }
      };
  
      public static com.aliyun.ots.thirdparty.com.google.protobuf.Parser<Filter> parser() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.aliyun.ots.thirdparty.com.google.protobuf.Parser<Filter> getParserForType() {
        return PARSER;
      }
  
      @java.lang.Override
      public com.alicloud.openservices.tablestore.core.protocol.OtsFilter.Filter getDefaultInstanceForType() {
        return DEFAULT_INSTANCE;
      }
  
    }
  
    private static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alicloud_openservices_tablestore_core_protocol_ValueTransferRule_descriptor;
    private static final 
      com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_com_alicloud_openservices_tablestore_core_protocol_ValueTransferRule_fieldAccessorTable;
    private static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alicloud_openservices_tablestore_core_protocol_SingleColumnValueFilter_descriptor;
    private static final 
      com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_com_alicloud_openservices_tablestore_core_protocol_SingleColumnValueFilter_fieldAccessorTable;
    private static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alicloud_openservices_tablestore_core_protocol_CompositeColumnValueFilter_descriptor;
    private static final 
      com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_com_alicloud_openservices_tablestore_core_protocol_CompositeColumnValueFilter_fieldAccessorTable;
    private static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alicloud_openservices_tablestore_core_protocol_ColumnPaginationFilter_descriptor;
    private static final 
      com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_com_alicloud_openservices_tablestore_core_protocol_ColumnPaginationFilter_fieldAccessorTable;
    private static final com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.Descriptor
      internal_static_com_alicloud_openservices_tablestore_core_protocol_Filter_descriptor;
    private static final 
      com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internal_static_com_alicloud_openservices_tablestore_core_protocol_Filter_fieldAccessorTable;
  
    public static com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.FileDescriptor
        getDescriptor() {
      return descriptor;
    }
    private static  com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.FileDescriptor
        descriptor;
    static {
      java.lang.String[] descriptorData = {
        "\n\020ots_filter.proto\0222com.alicloud.openser" +
        "vices.tablestore.core.protocol\"v\n\021ValueT" +
        "ransferRule\022\r\n\005regex\030\001 \002(\t\022R\n\tcast_type\030" +
        "\002 \001(\0162?.com.alicloud.openservices.tables" +
        "tore.core.protocol.VariantType\"\265\002\n\027Singl" +
        "eColumnValueFilter\022V\n\ncomparator\030\001 \002(\0162B" +
        ".com.alicloud.openservices.tablestore.co" +
        "re.protocol.ComparatorType\022\023\n\013column_nam" +
        "e\030\002 \002(\t\022\024\n\014column_value\030\003 \002(\014\022\031\n\021filter_" +
        "if_missing\030\004 \002(\010\022\033\n\023latest_version_only\030" +
        "\005 \002(\010\022_\n\020value_trans_rule\030\006 \001(\0132E.com.al" +
        "icloud.openservices.tablestore.core.prot" +
        "ocol.ValueTransferRule\"\306\001\n\032CompositeColu" +
        "mnValueFilter\022W\n\ncombinator\030\001 \002(\0162C.com." +
        "alicloud.openservices.tablestore.core.pr" +
        "otocol.LogicalOperator\022O\n\013sub_filters\030\002 " +
        "\003(\0132:.com.alicloud.openservices.tablesto" +
        "re.core.protocol.Filter\"7\n\026ColumnPaginat" +
        "ionFilter\022\016\n\006offset\030\001 \002(\005\022\r\n\005limit\030\002 \002(\005" +
        "\"f\n\006Filter\022L\n\004type\030\001 \002(\0162>.com.alicloud." +
        "openservices.tablestore.core.protocol.Fi" +
        "lterType\022\016\n\006filter\030\002 \002(\014*U\n\013VariantType\022" +
        "\016\n\nVT_INTEGER\020\000\022\r\n\tVT_DOUBLE\020\001\022\r\n\tVT_STR" +
        "ING\020\003\022\013\n\007VT_NULL\020\006\022\013\n\007VT_BLOB\020\007*a\n\nFilte" +
        "rType\022\032\n\026FT_SINGLE_COLUMN_VALUE\020\001\022\035\n\031FT_" +
        "COMPOSITE_COLUMN_VALUE\020\002\022\030\n\024FT_COLUMN_PA" +
        "GINATION\020\003*\240\001\n\016ComparatorType\022\014\n\010CT_EQUA" +
        "L\020\001\022\020\n\014CT_NOT_EQUAL\020\002\022\023\n\017CT_GREATER_THAN" +
        "\020\003\022\024\n\020CT_GREATER_EQUAL\020\004\022\020\n\014CT_LESS_THAN" +
        "\020\005\022\021\n\rCT_LESS_EQUAL\020\006\022\014\n\010CT_EXIST\020\007\022\020\n\014C" +
        "T_NOT_EXIST\020\010*4\n\017LogicalOperator\022\n\n\006LO_N" +
        "OT\020\001\022\n\n\006LO_AND\020\002\022\t\n\005LO_OR\020\003"
      };
      descriptor = com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.FileDescriptor
        .internalBuildGeneratedFileFrom(descriptorData,
          new com.aliyun.ots.thirdparty.com.google.protobuf.Descriptors.FileDescriptor[] {
          });
      internal_static_com_alicloud_openservices_tablestore_core_protocol_ValueTransferRule_descriptor =
        getDescriptor().getMessageTypes().get(0);
      internal_static_com_alicloud_openservices_tablestore_core_protocol_ValueTransferRule_fieldAccessorTable = new
        com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable(
          internal_static_com_alicloud_openservices_tablestore_core_protocol_ValueTransferRule_descriptor,
          new java.lang.String[] { "Regex", "CastType", });
      internal_static_com_alicloud_openservices_tablestore_core_protocol_SingleColumnValueFilter_descriptor =
        getDescriptor().getMessageTypes().get(1);
      internal_static_com_alicloud_openservices_tablestore_core_protocol_SingleColumnValueFilter_fieldAccessorTable = new
        com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable(
          internal_static_com_alicloud_openservices_tablestore_core_protocol_SingleColumnValueFilter_descriptor,
          new java.lang.String[] { "Comparator", "ColumnName", "ColumnValue", "FilterIfMissing", "LatestVersionOnly", "ValueTransRule", });
      internal_static_com_alicloud_openservices_tablestore_core_protocol_CompositeColumnValueFilter_descriptor =
        getDescriptor().getMessageTypes().get(2);
      internal_static_com_alicloud_openservices_tablestore_core_protocol_CompositeColumnValueFilter_fieldAccessorTable = new
        com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable(
          internal_static_com_alicloud_openservices_tablestore_core_protocol_CompositeColumnValueFilter_descriptor,
          new java.lang.String[] { "Combinator", "SubFilters", });
      internal_static_com_alicloud_openservices_tablestore_core_protocol_ColumnPaginationFilter_descriptor =
        getDescriptor().getMessageTypes().get(3);
      internal_static_com_alicloud_openservices_tablestore_core_protocol_ColumnPaginationFilter_fieldAccessorTable = new
        com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable(
          internal_static_com_alicloud_openservices_tablestore_core_protocol_ColumnPaginationFilter_descriptor,
          new java.lang.String[] { "Offset", "Limit", });
      internal_static_com_alicloud_openservices_tablestore_core_protocol_Filter_descriptor =
        getDescriptor().getMessageTypes().get(4);
      internal_static_com_alicloud_openservices_tablestore_core_protocol_Filter_fieldAccessorTable = new
        com.aliyun.ots.thirdparty.com.google.protobuf.GeneratedMessage.FieldAccessorTable(
          internal_static_com_alicloud_openservices_tablestore_core_protocol_Filter_descriptor,
          new java.lang.String[] { "Type", "Filter", });
      descriptor.resolveAllFeaturesImmutable();
    }
  
    // @@protoc_insertion_point(outer_class_scope)
  }
  