@@ -0,0 +1,1520 @@
+/*%0A * Copyright 2019-present Facebook, Inc.%0A *%0A * Licensed under the Apache License, Version 2.0 (the %22License%22); you may%0A * not use this file except in compliance with the License. You may obtain%0A * a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS, WITHOUT%0A * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the%0A * License for the specific language governing permissions and limitations%0A * under the License.%0A */%0Apackage com.facebook.buck.util.function;%0A%0A/**%0A * Represents a function that accepts four arguments and produces a result. This is the four-arity%0A * specialization of %7B@link java.util.function.Function%7D.%0A *%0A * %3Cp%3EThis is a functional interface whose functional method is %7B@link #apply(Object, Object, Object%0A * )%7D.%0A *%0A * @param %3CT%3E the type of the first argument to the function%0A * @param %3CU%3E the type of the second argument to the function%0A * @param %3CV%3E the type of the third argument to the function%0A * @param %3CR%3E the type of the result of the function%0A * @see java.util.function.Function%0A */%0A@FunctionalInterface%0Apublic interface TriFunction%3CT, U, V, R%3E %7B%0A  /**%0A   * Applies this function to the given arguments.%0A   *%0A   * @param t the first function argument%0A   * @param u the second function argument%0A   * @param v the third function argument%0A   * @return the function result%0A   */%0A  R apply(T t, U u, V v);%0A%7D%0A

Add new TriFunction interface