private boolean evaluate(T value) { // Single values overrule includes and excludes. for (Enum<T> e : _enumerations) if (e.evaluate(value)) return true; // Excludes overrule includes. for (Enum<T> e : _excludeRanges) if (e.evaluate(value)) return false; // Includes are overruled by excludes (and single values). for (Enum<T> e : _includeRanges) if (e.evaluate(value)) return true; return false; }