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