Package tigase.component.modules

## Interface Module

- All Known Implementing Classes:
    `AbstractEventBusModule`, `AbstractModule`, `AdHocCommandModule`, `AdHocCommandMonitorModule`, `DiscoveryModule`, `DiscoveryMonitorModule`, `EventbusDiscoveryModule`, `EventPublisherModule`, `EventReceiverModule`, `ExternalServiceDiscoveryModule`, `GetFormModule`, `JabberVersionModule`, `QueryModule`, `SubscribeModule`, `TestGeneratorModule`, `TestSpamModule`, `UnsubscribeModule`, `XmppPingModule`

      public interface Module

  Basic interface to implement component module. Single module should implement fragment of component logic. Is easy to add or remove in component (Server) configuration.
  Author:
    bmalkow

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static java.lang.String[]` | `EMPTY_FEATURES` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `default boolean` | `canHandle​(Packet packet)` | Returns true if Packet can be procesed by module.
    `default java.lang.String[]` | `getFeatures()` | Returns XMPP features offered by module.
    `Criteria` | `getModuleCriteria()` | Returns critera used by Component to select module to handle incoming stanza.
    `void` | `process​(Packet packet)` | Process incoming stanza.

- - ### Field Detail

    - #### EMPTY_FEATURES

          static final java.lang.String[] EMPTY_FEATURES

  - ### Method Detail

    - #### getFeatures

          default java.lang.String[] getFeatures()

      Returns XMPP features offered by module. Features will be returned by Service Discovery.
      Returns:
        array of features or `null`.

    - #### getModuleCriteria

          Criteria getModuleCriteria()

      Returns critera used by Component to select module to handle incoming stanza.
      Returns:
        criteria of selecting module.

    - #### canHandle

          default boolean canHandle​(Packet packet)

      Returns true if Packet can be procesed by module. Default implementation uses Criteria.

    - #### process

          void process​(Packet packet)
                throws ComponentException,
                       TigaseStringprepException

      Process incoming stanza.
      Parameters:
        `packet` - received `stanza`.
      Throws:
        `ComponentException` - if stanza can't be processed correctly. ComponentException is converted to error stanza and returned to stanza sender.
        `TigaseStringprepException` - if there was an error during stringprep processing.