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

com.aliyun.openservices.ots.model.condition.RelationalCondition Maven / Gradle / Ivy

Go to download

Aliyun Open Services SDK for Java Copyright (C) Alibaba Cloud Computing All rights reserved. 版权所有 (C)阿里云计算有限公司 http://www.aliyun.com

There is a newer version: 2.2.4
Show newest version
package com.aliyun.openservices.ots.model.condition;

import com.aliyun.openservices.ots.model.ColumnValue;
import com.google.protobuf.ByteString;

public class RelationalCondition implements ColumnCondition {
    public static enum CompareOperator {
        EQUAL, NOT_EQUAL, GREATER_THAN, GREATER_EQUAL, LESS_THAN, LESS_EQUAL
    }

    private CompareOperator operator;
    private String columnName;
    private ColumnValue columnValue;
    private boolean passIfMissing = true;

    public RelationalCondition(
        String columnName, final CompareOperator operator, final ColumnValue columnValue) {
        setColumnName(columnName);
        setOperator(operator);
        setColumnValue(columnValue);
    }

    /**
     * 获取列的比较操作符。
     *
     * @return 比较操作符。
     */
    public CompareOperator getOperator() {
        return operator;
    }

    /**
     * 设置列的比较操作符。
     *
     * @param operator 比较操作符
     * @return this for chain invocation
     */
    public RelationalCondition setOperator(CompareOperator operator) {
        this.operator = operator;
        return this;
    }

    /**
     * 获取列名。
     *
     * @return 列的名称。
     */
    public String getColumnName() {
        return columnName;
    }

    /**
     * 设置列的名称。
     *
     * @param columnName 列的名称
     * @return this for chain invocation
     */
    public RelationalCondition setColumnName(String columnName) {
        this.columnName = columnName;
        return this;
    }

    /**
     * 获取列的对比值。
     *
     * @return 列的对比值。
     */
    public ColumnValue getColumnValue() {
        return columnValue;
    }

    /**
     * 设置列的对比值。
     *
     * @param columnValue 列的对比值。
     * @return this for chain invocation
     */
    public RelationalCondition setColumnValue(ColumnValue columnValue) {
        this.columnValue = columnValue;
        return this;
    }

    /**
     * 返回设置的passIfMissing的值。
     *
     * @return passIfMissing的值。
     */
    public boolean isPassIfMissing() {
        return passIfMissing;
    }

    /**
     * 设置passIfMissing。
     * 于OTS一行的属性列不固定,有可能存在有condition条件的列在该行不存在的情况,这时{@link RelationalCondition#passIfMissing}参数控制在这种情况下对该行的检查结果。
     * 如果设置{@link RelationalCondition#passIfMissing}为true,则若列在该行中不存在,则检查条件通过。
     * 如果设置{@link RelationalCondition#passIfMissing}为false,则若列在该行中不存在,则检查条件失败。
     * 默认值为true。
     *
     * @param passIfMissing
     * @return this for chain invocation
     */
    public RelationalCondition setPassIfMissing(boolean passIfMissing) {
        this.passIfMissing = passIfMissing;
        return this;
    }

    @Override
    public ColumnConditionType getType() {
        return ColumnConditionType.RELATIONAL_CONDITION;
    }

    @Override
    public ByteString serialize() {
        return ColumnConditionBuilder.buildRelationalCondition(this);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy