package com.yanzuoguang.dao.cond; import com.yanzuoguang.dao.impl.SqlDataField; import com.yanzuoguang.util.base.ObjectHelper; import com.yanzuoguang.util.helper.StringHelper; import java.util.Arrays; import java.util.List; /** * 包含的值字段 * * @author 颜佐光 */ public class SqlCondEquals extends SqlCondBase { public Object val; public SqlCondEquals(String field, Object val) { this(Arrays.asList(field), val); } public SqlCondEquals(List<String> fields, Object val) { super(fields); this.val = val; } /** * 当前条件是否相等 * * @return */ @Override protected int getCondType(Object model, SqlDataField sqlField) { // 判断是否包含输入参数 boolean isInputField = !this.fields.isEmpty(); // 判断是否属于条件 boolean isCond = sqlField.getCodes().size() > 0 && sqlField.isAuto(); if (isInputField && isCond) { for (String field : this.fields) { // 获取值 Object val = ObjectHelper.get(model, field); if (StringHelper.isEmpty(val) || StringHelper.isEmptyArray(val)) { continue; } if (StringHelper.compare(val, this.val)) { // 只要有值不为空,则条件满足 return COND_TYPE_CODE_COND; } } } return COND_TYPE_NONE; } /** * 将当前条件复制为新的对象 * * @return */ @Override public SqlCond copy() { SqlCondEquals cond = new SqlCondEquals(this.fields, this.val); return cond; } }