class IgniteClosure2X<E1, E2, R> implements IgniteBiClosure<E1, E2, R> {
    /** */
    private static final long serialVersionUID = 0L;

    /** {@inheritDoc} */
    @Override public R apply(E1 e1, E2 e2) {<FILL_FUNCTION_BODY>}

    /**
     * Closure body that can throw {@link IgniteCheckedException}.
     *
     * @param e1 First bound free variable, i.e. the element the closure is called or closed on.
     * @param e2 Second bound free variable, i.e. the element the closure is called or closed on.
     * @return Optional return value.
     * @throws IgniteCheckedException Thrown in case of any error condition inside of the closure.
     */
    public abstract R applyx(E1 e1, E2 e2) throws IgniteCheckedException;
}

        try {
            return applyx(e1, e2);
        }
        catch (IgniteCheckedException e) {
            throw F.wrap(e);
        }
    
<no_super_class>