001package com.identityworksllc.iiq.common.service;
002
003import sailpoint.api.SailPointContext;
004import sailpoint.tools.GeneralException;
005
006/**
007 * Functional interface to invoke the implementation of your service after doing
008 * pre-work. This is intended for use with {@link BaseCommonService}, as the
009 * value of {@link BaseCommonService#invoker}.
010 *
011 * In your subclass of {@link BaseCommonService}, you may implement your behavior
012 * by either passing custom behavior as 'invoker' or by overriding 'implementation'.
013 */
014@FunctionalInterface
015public interface ServiceImplementationInvoker {
016    /**
017     * Invokes the service implementation after doing whatever pre-work is required.
018     *
019     * @param context The IIQ context
020     */
021    void invokeImplementation(SailPointContext context) throws GeneralException;
022}