@@ -0,0 +1,971 @@
+// Copyright 2020 Google LLC%0A//%0A// Licensed under the Apache License, Version 2.0 (the %22License%22);%0A// you may not use this file except in compliance with the License.%0A// You may obtain 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,%0A// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A// See the License for the specific language governing permissions and%0A// limitations under the License.%0A%0Apackage com.google.api.generator.util;%0A%0Aimport java.util.Objects;%0Aimport java.util.function.Function;%0A%0A@FunctionalInterface%0Apublic interface TriFunction%3CA, B, C, R%3E %7B%0A  R apply(A a, B b, C c);%0A%0A  default %3CV%3E TriFunction%3CA, B, C, V%3E andThen(Function%3C? super R, ? extends V%3E after) %7B%0A    Objects.requireNonNull(after);%0A    return (A a, B b, C c) -%3E after.apply(apply(a, b, c));%0A  %7D%0A%7D%0A

add a TriFunction (#624)