001package com.mybatisflex.core.query;
002
003import com.mybatisflex.core.FlexConsts;
004import com.mybatisflex.core.dialect.IDialect;
005
006import java.util.List;
007
008/**
009 * 取相反数({@code -column})。
010 *
011 * @author 王帅
012 * @since 2023-11-09
013 */
014public class NegativeQueryColumn extends QueryColumn implements HasParamsColumn {
015
016    private final QueryColumn queryColumn;
017
018    public NegativeQueryColumn(QueryColumn queryColumn) {
019        this.queryColumn = queryColumn;
020    }
021
022    @Override
023    public Object[] getParamValues() {
024        if (queryColumn instanceof HasParamsColumn) {
025            return ((HasParamsColumn) queryColumn).getParamValues();
026        }
027        return FlexConsts.EMPTY_ARRAY;
028    }
029
030    @Override
031    String toSelectSql(List<QueryTable> queryTables, IDialect dialect) {
032        return toConditionSql(queryTables, dialect) + WrapperUtil.buildColumnAlias(alias, dialect);
033    }
034
035    @Override
036    String toConditionSql(List<QueryTable> queryTables, IDialect dialect) {
037        return "-" + queryColumn.toConditionSql(queryTables, dialect);
038    }
039
040}