1f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale/*
2f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * Copyright (C) 2016 The Android Open Source Project
3f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale *
4f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * Licensed under the Apache License, Version 2.0 (the "License");
5f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * you may not use this file except in compliance with the License.
6f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * You may obtain a copy of the License at
7f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale *
8f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale *      http://www.apache.org/licenses/LICENSE-2.0
9f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale *
10f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * Unless required by applicable law or agreed to in writing, software
11f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * distributed under the License is distributed on an "AS IS" BASIS,
12f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * See the License for the specific language governing permissions and
14f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * limitations under the License
15f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale */
16f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale
17f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwalepackage com.android.internal.util;
18f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale
19f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwaleimport java.util.function.Function;
20f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale
21f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale/**
22f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * Represents a function that produces an boolean-valued result.  This is the
23f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * {@code boolean}-producing primitive specialization for {@link Function}.
24f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale *
25f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * <p>This is a <a href="package-summary.html">functional interface</a>
26f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * whose functional method is {@link #apply(Object)}.
27f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale *
28f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * @param <T> the type of the input to the function
29f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale *
30f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * @see Function
31f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale * @since 1.8
32f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale */
33f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale@FunctionalInterface
34f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwalepublic interface ToBooleanFunction<T> {
35f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale
36f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale    /**
37f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale     * Applies this function to the given argument.
38f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale     *
39f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale     * @param value the function argument
40f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale     * @return the function result
41f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale     */
42f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale    boolean apply(T value);
43f4ebe2e2ccfcbce9de7ad0c3b5399971201f66fdWale Ogunwale}
44