001package com.identityworksllc.iiq.common;
002
003import sailpoint.tools.GeneralException;
004
005/**
006 * Represents a function that takes four 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 <D> The fourth parameter type
012 * @param <R> The output type
013 */
014@FunctionalInterface
015public interface QuadFunction<A, B, C, D, R> {
016    /**
017     * Applies the function to the given arguments
018     */
019    R apply(A a, B b, C c, D d) throws GeneralException;
020}