namespace FileSearch.Logic.Model.Engine { public interface ICriterion { /// /// Имя критерия фильтра. /// string Name { get; } /// /// Значение, указывающее усилия, необходимые системе для сопоставления файла. /// Чем выше число, тем позже проверяется критерий. /// CriterionWeight Weight { get; } /// /// Указывает, поддерживает ли этот экземпляр критерия каталоги. /// bool DirectorySupport { get; } /// /// Указывает, поддерживает ли этот экземпляр критерия файлы. /// bool FileSupport { get; } /// /// Проверяет, соответствует ли файл или каталог этому критерию. /// /// Entry файловой системы. /// Контекст текущей работы всех критериев. /// bool IsMatch(FileSystemInfo fileSystemInfo, ICriterionContext context); /// /// Создает новый контекст для этого критерия. /// /// Новый контекст для сопоставления файлов. ICriterionContext BuildContext(); } }