package com.onaro.sanscreen.client.view.common.functions;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.eclipse.core.runtime.IAdaptable;
import com.onaro.client.leekui.runtime.OnaroAdapterUtils;
import com.onaro.commons.lang.OnaroThreadUtils;
import com.onaro.sanscreen.server.interfaces.ServerInterfacesUtils;
import com.onaro.sanscreen.server.interfaces.data.Context;
/**
* BulkFunction implementation that handles input objects with different {@link Context}s. The implementation will classify
* the input objects based on their Context, and pass the sets with the same Context on to its subclass for evaluation.
* To work properly, the input objects must be a subclass of {@link IAdaptable), and support being adapted to Context.
*
* @param IAdaptable row type this Function is able to operate on. Should allow adapting to Context.
* @param