package com.revolsys.record.query; import java.util.Arrays; import java.util.List; import com.revolsys.record.Record; import com.revolsys.util.Property; public class And extends AbstractMultiCondition { public And(final Condition... conditions) { this(Arrays.asList(conditions)); } public And(final Iterable<? extends Condition> conditions) { super("AND", conditions); } @Override public And and(final Condition condition) { if (!Property.isEmpty(condition)) { addCondition(condition); } return this; } @Override public And clone() { return (And)super.clone(); } @Override public boolean equals(final Object obj) { if (obj instanceof And) { return super.equals(obj); } return false; } @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public boolean test(final Record object) { final List<Condition> conditions = (List)getQueryValues(); for (final Condition condition : conditions) { if (!condition.test(object)) { return false; } } return true; } }