Interface DiscoInfoProvider

  • All Known Implementing Classes:
    AdHocCommandHandler, FileTransferProxy, IQOfflineMessagesHandler, IQPEPHandler, MediaProxyService, MultiUserChatServiceImpl, PubSubModule

    public interface DiscoInfoProvider
    A DiscoInfoProvider is responsible for providing information about a JID's name and its node. For example, the room service could implement this interface in order to provide disco#info about its rooms. In this case, the JID's name will be the room's name and node will be null.

    The information to provide has to include the entity's identity and the features offered and protocols supported by the target entity. The identity will be provided as an Element that will include the categoty, type and name attributes. Whilst the features will be just plain Strings.

    Author:
    Gaston Dombiak
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      Set<org.xmpp.forms.DataForm> getExtendedInfos​(String name, String node, org.xmpp.packet.JID senderJID)
      Returns a collection of XDataForm with the extended information about the entity or an empty collection if none.
      Iterator<String> getFeatures​(String name, String node, org.xmpp.packet.JID senderJID)
      Returns an Iterator (of String) with the supported features.
      Iterator<org.dom4j.Element> getIdentities​(String name, String node, org.xmpp.packet.JID senderJID)
      Returns an Iterator (of Element) with the target entity's identities.
      boolean hasInfo​(String name, String node, org.xmpp.packet.JID senderJID)
      Returns true if we can provide information related to the requested name and node.
    • Method Detail

      • getIdentities

        Iterator<org.dom4j.Element> getIdentities​(String name,
                                                  String node,
                                                  org.xmpp.packet.JID senderJID)
        Returns an Iterator (of Element) with the target entity's identities. Each Element must include the categoty, type and name attributes of the entity.
        Parameters:
        name - the recipient JID's name.
        node - the requested disco node.
        senderJID - the XMPPAddress of user that sent the disco info request.
        Returns:
        an Iterator (of Element) with the target entity's identities.
      • getFeatures

        Iterator<String> getFeatures​(String name,
                                     String node,
                                     org.xmpp.packet.JID senderJID)
        Returns an Iterator (of String) with the supported features. The features to include are the features offered and supported protocols by the target entity identified by the requested name and node.
        Parameters:
        name - the recipient JID's name.
        node - the requested disco node.
        senderJID - the XMPPAddress of user that sent the disco info request.
        Returns:
        an Iterator (of String) with the supported features.
      • getExtendedInfos

        Set<org.xmpp.forms.DataForm> getExtendedInfos​(String name,
                                                      String node,
                                                      org.xmpp.packet.JID senderJID)
        Returns a collection of XDataForm with the extended information about the entity or an empty collection if none. Each bit of information about the entity must be included as a value of a field of the form.
        Parameters:
        name - the recipient JID's name.
        node - the requested disco node.
        senderJID - the XMPPAddress of user that sent the disco info request.
        Returns:
        A collection of XDataForms with the extended information about the entity or an empty collection if none.
      • hasInfo

        boolean hasInfo​(String name,
                        String node,
                        org.xmpp.packet.JID senderJID)
                 throws UnauthorizedException
        Returns true if we can provide information related to the requested name and node. For example, if the requested name refers to a non-existent MUC room then the answer will be false. In case that the sender of the disco request is not authorized to discover this information an UnauthorizedException will be thrown.
        Parameters:
        name - the recipient JID's name.
        node - the requested disco node.
        senderJID - the XMPPAddress of user that sent the disco info request.
        Returns:
        true if we can provide information related to the requested name and node.
        Throws:
        UnauthorizedException - When senderJID is not authorized to discover information