001package com.identityworksllc.iiq.common.task; 002 003import sailpoint.api.SailPointContext; 004import sailpoint.tools.GeneralException; 005 006import java.util.Map; 007 008/** 009 * A consumer interface for executing an operation on an item in a private thread 010 * @param <T> The type of the object being consumed 011 */ 012@FunctionalInterface 013public interface PrivateContextObjectConsumer<T> { 014 /** 015 * Executes the operation on the item 016 * 017 * @param threadContext A private context for the current thread 018 * @param parameters Any relevant input parameters for the operation 019 * @param obj The item on which to operate 020 * @return An arbitrary output, which can be ignored or not 021 * @throws GeneralException if any failures occur during execution 022 */ 023 Object threadExecute(SailPointContext threadContext, Map<String, Object> parameters, T obj) throws GeneralException; 024}