package rescuecore2.config; import java.util.Set; import java.util.Collections; /** Abstract base class for value constraints. */ public abstract class AbstractValueConstraint implements ValueConstraint { /** The key this constraint refers to. */ protected final String key; /** Construct an AbstractConstrainedConfigValue. @param key The key this constraint applies to. */ protected AbstractValueConstraint(String key) { this.key = key; } @Override public final boolean isViolated(Config config) { String value = config.getValue(key, null); if (value == null) { return !undefinedIsValid(); } return !isValid(value, config); } @Override public final String getKey() { return key; } @Override public final Set<String> getKeys() { return Collections.singleton(key); } @Override public boolean undefinedIsValid() { return false; } }