class AdapterDelegatesManager {

    public int getViewType(@NonNull AdapterDelegate<T> delegate) {
        if (delegate == null) {
            throw new NullPointerException("Delegate is null");
        }

        int index = delegates.indexOfValue(delegate);
        if (index == -1) {
            return -1;
        }
        return delegates.keyAt(index);
    }

    public  AdapterDelegatesManager();
    public  AdapterDelegatesManager(@NonNull AdapterDelegate<T>... delegates);

}