Я хочу добавить в нашу автоматизированную среду тестирования возможность для авторов тестов отмечать свои методы тестирования атрибутами, представляющими минимальную версию ОС, которую поддерживает тест. Например, разработчик теста отметит, что метод тестирования поддерживает Windows Vista SP1 и выше, и тогда среда узнает, как запустить тест на Vista, 7 и т. Д.
Мне хотелось использовать enum для этого представления (например, OS.VistaSp1, OS.Win7 и т. Д.), Но, поскольку мы также поддерживаем несколько типов ОС (Mac, Linux и т. Д.), Enum будет недостаточно для структуры, чтобы понять, каков минимум (например, он не мог легко знать, что OS.Win7 выше, чем OS.VistaSp1, но не относится к OS.MacOsX)
Следующим шагом было то, что я мог использовать младшие биты перечисления для представления типа ОС и старшие биты для представления [относительного] номера версии, и это решило бы проблему. Это не самое чистое решение, но создателям тестов, использующим его, вообще не нужно об этом знать, и для анализа информации потребуется лишь небольшой объем кода, который может быть инкапсулирован в некотором классе Utils.
Есть мысли по этому поводу? Это чистое решение? Есть ли лучшее решение?
Спасибо!