main
 1using gorilla.utility;
 2
 3namespace solidware.financials.windows.ui
 4{
 5    public interface UISpecification
 6    {
 7        bool is_satisfied_by<T>(T presenter) where T : Presenter;
 8    }
 9
10    public abstract class UISpecification<TPresenter> : UISpecification, Specification<TPresenter> where TPresenter : Presenter
11    {
12        bool UISpecification.is_satisfied_by<T>(T presenter)
13        {
14            return is_satisfied_by(presenter.downcast_to<TPresenter>());
15        }
16
17        public abstract bool is_satisfied_by(TPresenter presenter);
18    }
19}