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}