package org.celllife.function; public class AndRule<T> extends AbstractRule<T> { private final IRule<? super T>[] rules; public AndRule(IRule<? super T>... argRules) { this.rules = argRules; } @Override public boolean evaluate(T candidate) { boolean evaluation = true; for (IRule<? super T> rule : rules) { evaluation &= rule.evaluate(candidate); } return evaluation; } /* * (non-Javadoc) * * @see org.celllife.function.AbstractRule#getDescription(java.lang.Object) */ @Override public String getDescription() { String desc = rules[0].getDescription(); for (int i = 1; i < rules.length; i++) { desc += " AND " + rules[i].getDescription(); } return desc; } }