package xdi2.messaging.container;
import xdi2.core.Graph;
import xdi2.core.syntax.XDIAddress;
import xdi2.messaging.container.exceptions.Xdi2MessagingException;
import xdi2.messaging.container.execution.ExecutionContext;
import xdi2.messaging.operations.Operation;
/**
* An AddressHandler can execute an XDI operation against an address.
*
* The AbstractMessagingContainer requests AddressHandler implementations for each
* address given as part of an operation.
*
* @author markus
*/
public interface AddressHandler {
/**
* Executes an XDI operation on an address.
* @param targetAddress The target address.
* @param operation The operation that is being executed.
* @param operationResultGraph The result graph.
* @param executionContext An "execution context" object for the entire XDI message envelope.
*/
public void executeOnAddress(XDIAddress targetAddress, Operation operation, Graph operationResultGraph, ExecutionContext executionContext) throws Xdi2MessagingException;
}