1 16 package com.ibatis.sqlmap.engine.mapping.sql.dynamic.elements; 17 18 import com.ibatis.common.beans.Probe; 19 import com.ibatis.common.beans.ProbeFactory; 20 21 import java.lang.reflect.Array ; 22 import java.util.Collection ; 23 24 public class IsEmptyTagHandler extends ConditionalTagHandler { 25 26 private static final Probe PROBE = ProbeFactory.getProbe(); 27 28 public boolean isCondition(SqlTagContext ctx, SqlTag tag, Object parameterObject) { 29 if (parameterObject == null) { 30 return true; 31 } else { 32 String prop = tag.getPropertyAttr(); 33 Object value; 34 if (prop != null) { 35 value = PROBE.getObject(parameterObject, prop); 36 } else { 37 value = parameterObject; 38 } 39 if (value instanceof Collection ) { 40 return value == null || ((Collection ) value).size() < 1; 41 } else if (value != null && value.getClass().isArray()) { 42 return Array.getLength(value) == 0; 43 } else { 44 return value == null || String.valueOf(value).equals(""); 45 } 46 } 47 } 48 49 } 50 | Popular Tags |