001package com.identityworksllc.iiq.common;
002
003import sailpoint.tools.GeneralException;
004
005/**
006 * Represents a function that takes three inputs and produces one output
007 * 
008 * @param <A> The first parameter type
009 * @param <B> The second parameter type
010 * @param <C> The third parameter type
011 * @param <R> The output type
012 */
013@FunctionalInterface
014public interface TriFunction<A, B, C, R> {
015    /**
016     * Applies this function to the given arguments
017     *
018     * @see java.util.function.Function#apply(Object)
019     */
020    R apply(A a, B b, C c) throws GeneralException;
021}