1 /*
2  * Copyright (C) 2014 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5  * in compliance with the License. You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software distributed under the License
10  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11  * or implied. See the License for the specific language governing permissions and limitations under
12  * the License.
13  */
14 package androidx.leanback.widget;
15 
16 import android.annotation.SuppressLint;
17 
18 import org.jspecify.annotations.Nullable;
19 
20 /**
21  * A PresenterSelector is used to obtain a {@link Presenter} for a given Object.
22  * Similar to {@link Presenter},  PresenterSelector is stateless.
23  */
24 public abstract class PresenterSelector {
25     /**
26      * Returns a presenter for the given item.
27      */
getPresenter(@ullable Object item)28     public abstract @Nullable Presenter getPresenter(@Nullable Object item);
29 
30     /**
31      * Returns an array of all possible presenters.  The returned array should
32      * not be modified.
33      */
34     @SuppressLint("NullableCollection")
getPresenters()35     public Presenter @Nullable [] getPresenters() {
36         return null;
37     }
38 }
39