package org.dayatang.domain.internal.criterion; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.dayatang.domain.NamedParameters; import org.dayatang.domain.QueryCriterion; /** * "空"条件,什么也不做。为了简化条件之间的运算 * * @author yyang (<a href="mailto:gdyangyu@gmail.com">gdyangyu@gmail.com</a>) */ public class EmptyCriterion extends AbstractCriterion { private static final EmptyCriterion INSTANCE = new EmptyCriterion(); public static final EmptyCriterion singleton() { return INSTANCE; } private EmptyCriterion() { } @Override public QueryCriterion and(QueryCriterion criterion) { return criterion; } @Override public QueryCriterion or(QueryCriterion criterion) { return criterion; } @Override public QueryCriterion not() { return this; } @Override public boolean isEmpty() { return true; } @Override public String toQueryString() { return ""; } @Override public NamedParameters getParameters() { return NamedParameters.create(); } @Override public boolean equals(Object other) { if (this == other) { return true; } if (!(other instanceof EmptyCriterion)) { return false; } return true; } @Override public int hashCode() { return new HashCodeBuilder(17, 31).toHashCode(); } }