run method
Применяет текущие матчеры.
Проходится по данным и проверяет проходит ли объект матчеры. Ничего не делает, если список данных пустой.
Implementation
@override
MatchUseCaseResult<T> run() {
final enabledMatchers = matchers.where((e) => e.isEnabled);
if (data.isNotEmpty && enabledMatchers.isNotEmpty) {
final newFilteredData = <T>{};
for (final item in data) {
final isMatch = _isPassingMatchers(
value: item,
matchers: enabledMatchers,
);
if (isMatch) {
newFilteredData.add(item);
}
}
return MatchUseCaseResult(
originalData: data,
matchedData: newFilteredData,
appliedMatchers: enabledMatchers,
);
}
return MatchUseCaseResult(
originalData: data,
matchedData: data,
appliedMatchers: const [],
);
}