Package tigase.cluster.strategy

## Interface ClusteringStrategyIfc<E extends ConnectionRecordIfc>

- All Superinterfaces:
    `OnlineJidsReporter`, `StatisticHolder`
  All Known Implementing Classes:
    `DefaultClusteringStrategy`, `DefaultClusteringStrategyAbstract`, `SMNonCachingAllNodes`

      public interface ClusteringStrategyIfc<E extends ConnectionRecordIfc>
      extends OnlineJidsReporter, StatisticHolder

  Created: May 2, 2009 4:36:03 PM
  Author:
    Artur Hefczyc

- - ### Method Summary

    All Methods Instance Methods Abstract Methods Default Methods Deprecated Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `E` | `getConnectionRecord​(JID jid)` | Returns a ConnectionRecord object associated with this user's full JID if it exists in the cache or null if it does not.
    `E` | `getConnectionRecordInstance()` |
    `java.util.Set<E>` | `getConnectionRecords​(BareJID bareJID)` | Returns a set with all ConnectionRecords found in the cache for a given user ID, that is BareJID.
    `default java.util.List<E>` | `getConnectionRecordsByCreationTime​(BareJID bareJID)` |
    `java.util.Map<java.lang.String,​java.lang.Object>` | `getDefaults​(java.util.Map<java.lang.String,​java.lang.Object> params)` | Deprecated.
    `java.lang.String` | `getInfo()` |
    `java.util.List<JID>` | `getNodesConnected()` | The method returns all cluster nodes currently connected to the cluster node.
    `void` | `getStatistics​(StatisticsList list)` | Add the strategy statistics to the List.
    `void` | `handleLocalPacket​(Packet packet, XMPPResourceConnection conn)` |
    `void` | `handleLocalPresenceSet​(XMPPResourceConnection conn)` |
    `void` | `handleLocalResourceBind​(XMPPResourceConnection conn)` |
    `void` | `handleLocalUserChangedConnId​(BareJID userId, XMPPResourceConnection conn, JID oldConnId, JID newConnId)` |
    `void` | `handleLocalUserLogin​(BareJID userId, XMPPResourceConnection conn)` |
    `void` | `handleLocalUserLogout​(BareJID userId, XMPPResourceConnection conn)` |
    `void` | `nodeConnected​(JID node)` | This is a handler method which is called when a new node connects to the cluster.
    `void` | `nodeDisconnected​(JID node)` | This is a handler method which is called when a node disconnects from the cluster.
    `boolean` | `processPacket​(Packet packet, XMPPResourceConnection conn)` |
    `void` | `setClusterController​(ClusterControllerIfc clComp)` |
    `void` | `setProperties​(java.util.Map<java.lang.String,​java.lang.Object> props)` | Method used to pass configuration parameters to the class.

    - ### Methods inherited from interface tigase.sys.OnlineJidsReporter

      `containsJid, containsJidLocally, containsJidLocally, getConnectionIdsForJid, hasCompleteJidsInfo`

    - ### Methods inherited from interface tigase.stats.StatisticHolder

      `everyHour, everyMinute, everySecond, getStatistics, setStatisticsPrefix, statisticExecutedIn`

- - ### Method Detail

    - #### handleLocalPresenceSet

          void handleLocalPresenceSet​(XMPPResourceConnection conn)

    - #### handleLocalResourceBind

          void handleLocalResourceBind​(XMPPResourceConnection conn)

    - #### handleLocalUserLogin

          void handleLocalUserLogin​(BareJID userId,
                                    XMPPResourceConnection conn)

    - #### handleLocalUserLogout

          void handleLocalUserLogout​(BareJID userId,
                                     XMPPResourceConnection conn)

    - #### handleLocalUserChangedConnId

          void handleLocalUserChangedConnId​(BareJID userId,
                                            XMPPResourceConnection conn,
                                            JID oldConnId,
                                            JID newConnId)

    - #### getInfo

          java.lang.String getInfo()

    - #### handleLocalPacket

          void handleLocalPacket​(Packet packet,
                                 XMPPResourceConnection conn)

    - #### nodeConnected

          void nodeConnected​(JID node)

      This is a handler method which is called when a new node connects to the cluster.
      Parameters:
        `node` - is a cluster node id.

    - #### nodeDisconnected

          void nodeDisconnected​(JID node)

      This is a handler method which is called when a node disconnects from the cluster.
      Parameters:
        `node` - is a cluster node id.

    - #### processPacket

          boolean processPacket​(Packet packet,
                                XMPPResourceConnection conn)

    - #### getNodesConnected

          java.util.List<JID> getNodesConnected()

      The method returns all cluster nodes currently connected to the cluster node.
      Returns:
        List of all cluster nodes currently connected to the cluster node.

    - #### getConnectionRecord

          E getConnectionRecord​(JID jid)

      Returns a ConnectionRecord object associated with this user's full JID if it exists in the cache or null if it does not. All parts of the user's JID are checked and ConnectionRecord is returned only if there is a match for all parts.
      Parameters:
        `jid` - is an instance of the user's full JID.
      Returns:
        ConnectionRecord instance associated with given user's JID or null if there is no ConnectionRecord in the cache.

    - #### getConnectionRecordInstance

          E getConnectionRecordInstance()

    - #### getConnectionRecords

          java.util.Set<E> getConnectionRecords​(BareJID bareJID)

      Returns a set with all ConnectionRecords found in the cache for a given user ID, that is BareJID. In other words all user's resources/connectionIDs found in the cache associated with user's account.
      Parameters:
        `bareJID` - is an instance of the user's BareJID, that is account ID.
      Returns:
        a Set instance with all ConnectionRecords found for a given BareJID. Note, the result may be null or it maybe an empty Set or non-empty set.

    - #### getConnectionRecordsByCreationTime

          default java.util.List<E> getConnectionRecordsByCreationTime​(BareJID bareJID)

    - #### getDefaults

          @Deprecated
          java.util.Map<java.lang.String,​java.lang.Object> getDefaults​(java.util.Map<java.lang.String,​java.lang.Object> params)

      Deprecated.
      This method is used for configuration purpose. Following the convention used in the Tigase project this method is supposed to provide configuration defaults. All parameters which exist in configuration file overwrite corresponding default parameters. If some parameters are missing in configuration file defaults are used then.
      A compiled set of parameters is then passed to `setProperties` method.
      Parameters:
        `params` - a `Map` with properties loaded from init.properties file which should be used for generating defaults.
      Returns:
        a `Map` with all the class default configuration parameters.

    - #### getStatistics

          void getStatistics​(StatisticsList list)

      Add the strategy statistics to the List.

    - #### setClusterController

          void setClusterController​(ClusterControllerIfc clComp)

    - #### setProperties

          void setProperties​(java.util.Map<java.lang.String,​java.lang.Object> props)

      Method used to pass configuration parameters to the class. Parameters are stored in `Map` which contains compiles set of defaults overwritten by parameters loaded from configuration file.
      If he implementation took a good care of providing defaults for all parameters no parameter should be missing.
      Parameters:
        `props` - a `Map` with all configuration parameters for the class.