*
* @return {@code true} if all passed in conditions match.
*/
public static Condition and(final Condition... conditions) {
Check.argument(conditions.length > 1, "At least two operators expected!");
return new Condition()
{
@Override
public boolean isSatisfiedBy(final NexusStatus status) {
for (Condition condition : conditions) {
if (!condition.isSatisfiedBy(status)) {
return false;
}
}
return true;
}
private static final String KW = " AND ";
@Override
public String explainNotSatisfied(final NexusStatus status) {
final Condition lastCondition = conditions[conditions.length - 1];
final StringBuilder explanation = new StringBuilder("(");
for (Condition condition : conditions) {
explanation.append(condition.explainNotSatisfied(status));
if (condition != lastCondition) {
explanation.append(KW);