package com.revolsys.swing.action.enablecheck;
import java.util.Collection;
public class AndEnableCheck extends MultiEnableCheck {
public AndEnableCheck() {
}
public AndEnableCheck(final Collection<? extends EnableCheck> enableChecks) {
super(enableChecks);
}
public AndEnableCheck(final EnableCheck... enableChecks) {
super(enableChecks);
}
@Override
public EnableCheck and(final EnableCheck enableCheck) {
if (enableCheck == null || enableCheck == this) {
return this;
} else if (enableCheck instanceof AndEnableCheck) {
final AndEnableCheck and = (AndEnableCheck)enableCheck;
for (final EnableCheck enableCheck2 : and) {
addEnableCheck(enableCheck2);
}
return this;
} else {
return new AndEnableCheck(this, enableCheck);
}
}
@Override
public boolean isEnabled() {
for (final EnableCheck enableCheck : this) {
if (!enableCheck.isEnabled()) {
return disabled();
}
}
return enabled();
}
@Override
public String toString() {
return "AND " + super.toString();
}
}