Home | History | Annotate | Download | only in finders
      1 /*
      2  * Copyright (C) 2013 DroidDriver committers
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package io.appium.droiddriver.finders;
     18 
     19 /**
     20  * Determines a true or false value for a given input.
     21  *
     22  * This is replicated from the open-source <a
     23  * href="http://guava-libraries.googlecode.com">Guava libraries</a>.
     24  * <p>
     25  * Many apps use Guava. If a test apk also contains a copy of Guava, duplicated
     26  * classes in app and test apks may cause error at run-time:
     27  * "Class ref in pre-verified class resolved to unexpected implementation". To
     28  * simplify the build and deployment set-up, DroidDriver copies the code of some
     29  * Guava classes (often simplified) to this package such that it does not depend
     30  * on Guava.
     31  * </p>
     32  */
     33 public interface Predicate<T> {
     34   /**
     35    * Returns the result of applying this predicate to {@code input}.
     36    */
     37   boolean apply(T input);
     38 
     39   /**
     40    * {@inheritDoc}
     41    *
     42    * <p>
     43    * It is recommended that this method return the description of this
     44    * Predicate.
     45    * </p>
     46    */
     47   @Override
     48   String toString();
     49 }
     50