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

  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()`
  `Set<E>`
  `getConnectionRecords(BareJID bareJID)`
  Returns a set with all ConnectionRecords found in the cache for a given user ID, that is BareJID.
  `default List<E>`
  `getConnectionRecordsByCreationTime(BareJID bareJID)`
  `Map<String,Object>`
  `getDefaults(Map<String,Object> params)`
  Deprecated.
  `String`
  `getInfo()`
  `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(Map<String,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 Details

  - ### 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

    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

    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

    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 List<E> getConnectionRecordsByCreationTime(BareJID bareJID)

  - ### getDefaults

    @Deprecated Map<String,Object> getDefaults(Map<String,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(Map<String,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.