package xdi2.agent; import java.util.Collection; import xdi2.client.XDIClient; import xdi2.client.XDIClientRoute; import xdi2.client.exceptions.Xdi2AgentException; import xdi2.client.exceptions.Xdi2ClientException; import xdi2.client.manipulator.Manipulator; import xdi2.core.ContextNode; import xdi2.core.syntax.XDIAddress; import xdi2.core.syntax.XDIArc; import xdi2.messaging.Message; import xdi2.messaging.MessageEnvelope; import xdi2.messaging.response.MessagingResponse; /** * An XDIAgent can intelligently construct and send XDI messages to obtain * desired data. * * @author markus */ public interface XDIAgent { public XDIClientRoute<? extends XDIClient<? extends MessagingResponse>> route(XDIArc toPeerRootXDIArc) throws Xdi2AgentException, Xdi2ClientException; public XDIClientRoute<? extends XDIClient<? extends MessagingResponse>> route(XDIAddress XDIaddress) throws Xdi2AgentException, Xdi2ClientException; public XDIClientRoute<? extends XDIClient<? extends MessagingResponse>> route(MessageEnvelope messageEnvelope) throws Xdi2AgentException, Xdi2ClientException; public XDIClientRoute<? extends XDIClient<? extends MessagingResponse>> route(Message message) throws Xdi2AgentException, Xdi2ClientException; /* * $get helper methods */ public ContextNode get(XDIAddress XDIaddress, XDIAddress senderXDIAddress, Collection<Manipulator> manipulators) throws Xdi2AgentException, Xdi2ClientException; public ContextNode get(XDIAddress XDIaddress, XDIAddress senderXDIAddress, Manipulator[] manipulators) throws Xdi2AgentException, Xdi2ClientException; public ContextNode get(XDIAddress XDIaddress, XDIAddress senderXDIAddress, Manipulator manipulator) throws Xdi2AgentException, Xdi2ClientException; public ContextNode get(XDIAddress XDIaddress, XDIAddress senderXDIAddress) throws Xdi2AgentException, Xdi2ClientException; public ContextNode get(XDIAddress XDIaddress, Collection<Manipulator> manipulators) throws Xdi2AgentException, Xdi2ClientException; public ContextNode get(XDIAddress XDIaddress, Manipulator[] manipulators) throws Xdi2AgentException, Xdi2ClientException; public ContextNode get(XDIAddress XDIaddress, Manipulator manipulator) throws Xdi2AgentException, Xdi2ClientException; public ContextNode get(XDIAddress XDIaddress) throws Xdi2AgentException, Xdi2ClientException; }