summaryrefslogtreecommitdiff
path: root/product/desktop.ui/UISpecification.cs
blob: 37dfe39a63fb5cf149d7e8cf41cfc970d6b3a965 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using gorilla.utility;

namespace solidware.financials.windows.ui
{
    public interface UISpecification
    {
        bool is_satisfied_by<T>(T presenter) where T : Presenter;
    }

    public abstract class UISpecification<TPresenter> : UISpecification, Specification<TPresenter>
        where TPresenter : Presenter
    {
        bool UISpecification.is_satisfied_by<T>(T presenter)
        {
            return is_satisfied_by(presenter.downcast_to<TPresenter>());
        }

        public abstract bool is_satisfied_by(TPresenter presenter);
    }
}