package org.atomnuke.plugin;
import org.atomnuke.plugin.operation.ComplexOperation;
import org.atomnuke.plugin.operation.OperationFailureException;
import org.atomnuke.plugin.operation.SimpleOperation;
/**
* An instance context represents a context sandbox that surrounds a loaded
* instance of type T.
*
* @author zinic
*/
public interface InstanceContext<T> {
Class<T> instanceClass();
T instance();
void perform(SimpleOperation<T> requestedOperation) throws OperationFailureException;
<A> void perform(ComplexOperation<T, A> requestedOperation, A argument) throws OperationFailureException;
}