tigase.server

## Class BasicComponent

- java.lang.Object
- - tigase.server.BasicComponent

- All Implemented Interfaces:
    ClusteredComponentIfc, Configurable, XMPPService, ServerComponent, VHostListener
  Direct Known Subclasses:
    AbstractComponentRegistrator, AbstractMessageReceiver

      public class BasicComponent
      extends Object
      implements Configurable, XMPPService, VHostListener, ClusteredComponentIfc

  Created: Oct 17, 2009 7:49:05 PM
  Version:
    $Rev$
  Author:
    Artur Hefczyc

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Set<BareJID>` | `admins`
    `static String` | `ALL_PROP_KEY` Field description
    `static String` | `COMMAND_PROP_NODE` Field description
    `protected Map<String,CommandIfc>` | `scriptCommands` Field description
    `static String` | `SCRIPTS_DIR_PROP_DEF` Field description
    `static String` | `SCRIPTS_DIR_PROP_KEY` Field description
    `protected Set<String>` | `trusted`
    `protected VHostManagerIfc` | `vHostManager` Field description

    - ### Fields inherited from interface tigase.conf.Configurable

      `ADMINS_PROP_KEY, AMP_CLASS_NAME, AMP_CLUST_CLASS_NAME, AUTH_DOMAIN_POOL_CLASS, AUTH_REPO_DOMAINS_PROP_KEY, AUTH_REPO_PARAMS_NODE, AUTH_REPO_POOL_CLASS, AUTH_REPO_URL_PROP_KEY, BOSH_CLUST_COMP_CLASS_NAME, BOSH_COMP_CLASS_NAME, C2S_CLUST_COMP_CLASS_NAME, C2S_COMP_CLASS_NAME, CL_COMP_CLASS_NAME, CLUSTER_CONECT, CLUSTER_CONTR_CLASS_NAME, CLUSTER_LISTEN, CLUSTER_MODE, CLUSTER_NODES, CLUSTER_NODES_PROP_KEY, COMP_PROT_CLASS_NAME, COMPONENT_ID_PROP_KEY, DEF_AMP_NAME, DEF_BOSH_NAME, DEF_C2S_NAME, DEF_CL_COMP_NAME, DEF_CLUST_CONTR_NAME, DEF_COMP_PROT_NAME, DEF_EVENTBUS_NAME, DEF_EXT_COMP_NAME, DEF_HOSTNAME_PROP_KEY, DEF_MONITOR_NAME, DEF_S2S_NAME, DEF_SM_NAME, DEF_SRECV_NAME, DEF_SSEND_NAME, DEF_STATS_NAME, DEF_VHOST_MAN_NAME, DEF_WS2S_NAME, DERBY_REPO_CLASS_PROP_VAL, DERBY_REPO_URL_PROP_VAL, DRUPAL_REPO_URL_PROP_VAL, DRUPALWP_REPO_CLASS_PROP_VAL, DUMMY_REPO_CLASS_PROP_VAL, EVENTBUS_CLASS_NAME, EXT_COMP_CLASS_NAME, GEN_ADMINS, GEN_AUTH_DB, GEN_AUTH_DB_URI, GEN_COMP_CLASS, GEN_COMP_NAME, GEN_CONF, GEN_CONFIG, GEN_CONFIG_ALL, GEN_CONFIG_COMP, GEN_CONFIG_CS, GEN_CONFIG_DEF, GEN_CONFIG_SM, GEN_DEBUG, GEN_DEBUG_PACKAGES, GEN_EXT_COMP, GEN_MAX_QUEUE_SIZE, GEN_SCRIPT_DIR, GEN_SM_PLUGINS, GEN_SREC_ADMINS, GEN_SREC_DB, GEN_SREC_DB_URI, GEN_TEST, GEN_TRUSTED, GEN_USER_DB, GEN_USER_DB_URI, GEN_USER_DB_URI_PROP_KEY, GEN_VIRT_HOSTS, HOSTNAMES_PROP_KEY, LIBRESOURCE_REPO_CLASS_PROP_VAL, LIBRESOURCE_REPO_URL_PROP_VAL, MONITOR_CLASS_NAME, MONITOR_CLUST_CLASS_NAME, MONITORING, MYSQL_REPO_CLASS_PROP_VAL, MYSQL_REPO_URL_PROP_VAL, PGSQL_REPO_CLASS_PROP_VAL, PGSQL_REPO_URL_PROP_VAL, ROUTER_COMP_CLASS_NAME, S2S_CLUST_COMP_CLASS_NAME, S2S_COMP_CLASS_NAME, SHARED_AUTH_REPO_PARAMS_PROP_KEY, SHARED_AUTH_REPO_PROP_KEY, SHARED_USER_REPO_PARAMS_PROP_KEY, SHARED_USER_REPO_PROP_KEY, SM_CLUST_COMP_CLASS_NAME, SM_COMP_CLASS_NAME, SRECV_COMP_CLASS_NAME, SSEND_COMP_CLASS_NAME, STANZA_WHITE_CHAR_ACK, STANZA_XMPP_ACK, STATS_CLASS_NAME, STRINGPREP_PROCESSOR, TIGASE_AUTH_REPO_CLASS_PROP_VAL, TIGASE_AUTH_REPO_URL_PROP_VAL, TIGASE_CUSTOM_AUTH_REPO_CLASS_PROP_VAL, TRUSTED_PROP_KEY, USER_DOMAIN_POOL_CLASS, USER_REPO_DOMAINS_PROP_KEY, USER_REPO_PARAMS_NODE, USER_REPO_POOL_CLASS, USER_REPO_POOL_SIZE, USER_REPO_POOL_SIZE_PROP_KEY, USER_REPO_URL_PROP_KEY, VHOST_MAN_CLASS_NAME, VHOST_MAN_CLUST_CLASS_NAME, WS2S_CLASS_NAME, WS2S_CLUST_CLASS_NAME, XML_REPO_CLASS_PROP_VAL, XML_REPO_URL_PROP_VAL, XMPP_STANZA_ACK`

    - ### Fields inherited from interface tigase.disco.XMPPService

      `CMD_FEATURES, DEF_FEATURES, INFO_XMLNS, ITEMS_XMLNS`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BasicComponent()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addComponentDomain(String domain)` Method description
    `boolean` | `canCallCommand(JID jid, String commandId)`
    `boolean` | `checkCommandAcl(JID jid, EnumSet<CmdAcl> acl)` Method description
    `void` | `everyHour()`
    `void` | `everyMinute()`
    `void` | `everySecond()`
    `JID` | `getComponentId()` Method description
    `ComponentInfo` | `getComponentInfo()` Allows to obtain various informations about components
    `Map<String,Object>` | `getDefaults(Map<String,Object> params)` Returns default configuration settings for the component as a `Map` with keys as configuration property IDs and values as the configuration property values.
    `BareJID` | `getDefHostName()` Method description
    `BareJID` | `getDefVHostItem()` Method description
    `String` | `getDiscoCategory()` Method description
    `String` | `getDiscoCategoryType()` Method description
    `String` | `getDiscoDescription()` Method description
    `List<Element>` | `getDiscoFeatures()` Deprecated.
    `List<Element>` | `getDiscoFeatures(JID from)` Returns features for top level disco info
    `Element` | `getDiscoInfo(String node, JID jid)` Deprecated.
    `Element` | `getDiscoInfo(String node, JID jid, JID from)` Returns service discovery info for the component.
    `List<Element>` | `getDiscoItems(String node, JID jid)` Deprecated.
    `List<Element>` | `getDiscoItems(String node, JID jid, JID from)` Returns service discovery items for the component.
    `String` | `getName()` Method description
    `List<JID>` | `getNodesConnected()`
    `List<JID>` | `getNodesConnectedWithLocal()`
    `protected Map<String,CommandIfc>` | `getScriptCommands()` Method description
    `List<Element>` | `getScriptItems(String node, JID jid, JID from)` Method description
    `protected ServiceEntity` | `getServiceEntity()` Method description
    `void` | `getStatistics(StatisticsList list)`
    `VHostItem` | `getVHostItem(String domain)` Method description
    `boolean` | `handlesLocalDomains()` Method description
    `boolean` | `handlesNameSubdomains()` Indicates whether the component can handle packets to 'name' subdomain.
    `boolean` | `handlesNonLocalDomains()` Indicates whether the component can handle all packets to non-local domains.
    `void` | `initBindings(Bindings binds)` Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
    `void` | `initializationCompleted()` Method is called by `MessageRouter` when all the startup components of the server have been loaded and configured through setProperties(...) call.
    `boolean` | `isAdmin(JID jid)` Method description
    `boolean` | `isInitializationComplete()` Method returns information about whether the initialization process (initializationCompleted()) method has been called.
    `boolean` | `isLocalDomain(String domain)` Method description
    `boolean` | `isLocalDomainOrComponent(String domain)` Method description
    `protected boolean` | `isNonAdminCommands()` Method description
    `boolean` | `isSubdomain()` Method returns true is component should be represented as subdomain
    `boolean` | `isTrusted(JID jid)`
    `boolean` | `isTrusted(String jid)`
    `void` | `nodeConnected(String node)` Method is called on cluster node connection event.
    `void` | `nodeDisconnected(String node)` Method is called on cluster node disconnection event.
    `protected void` | `onNodeConnected(JID jid)`
    `protected void` | `onNodeDisconnected(JID jid)`
    `void` | `processPacket(Packet packet, Queue<Packet> results)` `processPacket` is a blocking processing method implemented by all components.
    `protected boolean` | `processScriptCommand(Packet pc, Queue<Packet> results)` Method description
    `void` | `release()` Method description
    `void` | `removeComponentDomain(String domain)` Method description
    `void` | `removeServiceDiscoveryItem(String jid, String node, String description)` Method description
    `void` | `setClusterController(ClusterControllerIfc cl_controller)` Set's the configures the cluster controller object for cluster communication and API.
    `void` | `setName(String name)` Method description
    `void` | `setProperties(Map<String,Object> props)` Sets all configuration properties for the object.
    `void` | `setVHostManager(VHostManagerIfc manager)` Sets the VHostManager which works on this server installation.
    `void` | `updateServiceDiscoveryItem(String jid, String node, String description, boolean admin)` Method description
    `void` | `updateServiceDiscoveryItem(String jid, String node, String description, boolean admin, String... features)` Method description
    `void` | `updateServiceDiscoveryItem(String jid, String node, String description, String category, String type, boolean admin, String... features)` Method description
    `void` | `updateServiceEntity()` Method description

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### ALL_PROP_KEY

          public static final String ALL_PROP_KEY

      Field description
      See Also:
        Constant Field Values

    - #### COMMAND_PROP_NODE

          public static final String COMMAND_PROP_NODE

      Field description
      See Also:
        Constant Field Values

    - #### SCRIPTS_DIR_PROP_DEF

          public static final String SCRIPTS_DIR_PROP_DEF

      Field description
      See Also:
        Constant Field Values

    - #### SCRIPTS_DIR_PROP_KEY

          public static final String SCRIPTS_DIR_PROP_KEY

      Field description
      See Also:
        Constant Field Values

    - #### vHostManager

          protected VHostManagerIfc vHostManager

      Field description

    - #### scriptCommands

          protected Map<String,CommandIfc> scriptCommands

      Field description

    - #### admins

          protected Set<BareJID> admins

    - #### trusted

          protected Set<String> trusted

  - ### Constructor Detail

    - #### BasicComponent

          public BasicComponent()

  - ### Method Detail

    - #### addComponentDomain

          public void addComponentDomain(String domain)

      Method description
      Parameters:
        `domain` -

    - #### canCallCommand

          public boolean canCallCommand(JID jid,
                                        String commandId)

      Parameters:
        `jid` -
        `commandId` -
      Returns:
        a value of `boolean`

    - #### checkCommandAcl

          public boolean checkCommandAcl(JID jid,
                                         EnumSet<CmdAcl> acl)

      Method description
      Parameters:
        `jid` -
        `acl` -
      Returns:
        a value of `boolean`

    - #### everyHour

          public void everyHour()

    - #### everyMinute

          public void everyMinute()

    - #### everySecond

          public void everySecond()

    - #### handlesLocalDomains

          public boolean handlesLocalDomains()

      Method description
      Specified by:
        `handlesLocalDomains` in interface `VHostListener`
      Returns:
        a value of `boolean`

    - #### handlesNameSubdomains

          public boolean handlesNameSubdomains()

      Description copied from interface: `VHostListener`
      Indicates whether the component can handle packets to 'name' subdomain. Name subdomain is an artificial domain created from the component name and the domain name. The best example would be a 'MUC' component or a 'PubSub' component. They are usually named respectively 'muc' and 'pubsub' and they accept requests sent to domains 'muc.tigase.org' or 'pubsub.tigase.org', even though a local domain is just 'tigase.org'.
      Specified by:
        `handlesNameSubdomains` in interface `VHostListener`
      Returns:
        'true' if the component accepts packets to 'name' subdomains 'false' otherwise.

    - #### handlesNonLocalDomains

          public boolean handlesNonLocalDomains()

      Description copied from interface: `VHostListener`
      Indicates whether the component can handle all packets to non-local domains. S2s connection manager component is the best example of the component which handles all requests sent to non-local domains.
      Specified by:
        `handlesNonLocalDomains` in interface `VHostListener`
      Returns:
        'true' if the component accepts packets to non-local domains 'false' otherwise.

    - #### initBindings

          public void initBindings(Bindings binds)

      Initialize a mapping of key/value pairs which can be used in scripts loaded by the server
      Parameters:
        `binds` - A mapping of key/value pairs, all of whose keys are Strings.

    - #### initializationCompleted

          public void initializationCompleted()

      Description copied from interface: `ServerComponent`
      Method is called by `MessageRouter` when all the startup components of the server have been loaded and configured through setProperties(...) call. At this point the whole server should be loaded and functional, except initializations taking place in this routine.
      Specified by:
        `initializationCompleted` in interface `ServerComponent`

    - #### nodeConnected

          public void nodeConnected(String node)

      Description copied from interface: `ClusteredComponentIfc`
      Method is called on cluster node connection event. This is a notification to the component that a new cluster node has connected.
      Specified by:
        `nodeConnected` in interface `ClusteredComponentIfc`
      Parameters:
        `node` - is a hostname of a cluster node generating the event.

    - #### nodeDisconnected

          public void nodeDisconnected(String node)

      Description copied from interface: `ClusteredComponentIfc`
      Method is called on cluster node disconnection event. This is a notification to the component that there was network connection lost to one of the cluster nodes.
      Specified by:
        `nodeDisconnected` in interface `ClusteredComponentIfc`
      Parameters:
        `node` - is a hostname of a cluster node generating the event.

    - #### processPacket

          public void processPacket(Packet packet,
                                    Queue<Packet> results)

      Description copied from interface: `ServerComponent`
      `processPacket` is a blocking processing method implemented by all components. This method processes packet and returns results instantly without waiting for any resources.
      Specified by:
        `processPacket` in interface `ServerComponent`
      Parameters:
        `packet` - a `Packet` value

    - #### release

          public void release()

      Description copied from interface: `ServerComponent`
      Method description
      Specified by:
        `release` in interface `ServerComponent`

    - #### removeComponentDomain

          public void removeComponentDomain(String domain)

      Method description
      Parameters:
        `domain` -

    - #### removeServiceDiscoveryItem

          public void removeServiceDiscoveryItem(String jid,
                                                 String node,
                                                 String description)

      Method description
      Parameters:
        `jid` -
        `node` -
        `description` -

    - #### setClusterController

          public void setClusterController(ClusterControllerIfc cl_controller)

      Description copied from interface: `ClusteredComponentIfc`
      Set's the configures the cluster controller object for cluster communication and API.
      Specified by:
        `setClusterController` in interface `ClusteredComponentIfc`
      Parameters:
        `cl_controller` - cluster controller object used for cluster communication

    - #### updateServiceDiscoveryItem

          public void updateServiceDiscoveryItem(String jid,
                                                 String node,
                                                 String description,
                                                 boolean admin)

      Method description
      Parameters:
        `jid` -
        `node` -
        `description` -
        `admin` -

    - #### updateServiceDiscoveryItem

          public void updateServiceDiscoveryItem(String jid,
                                                 String node,
                                                 String description,
                                                 boolean admin,
                                                 String... features)

      Method description
      Parameters:
        `jid` -
        `node` -
        `description` -
        `admin` -
        `features` -

    - #### updateServiceDiscoveryItem

          public void updateServiceDiscoveryItem(String jid,
                                                 String node,
                                                 String description,
                                                 String category,
                                                 String type,
                                                 boolean admin,
                                                 String... features)

      Method description
      Parameters:
        `jid` -
        `node` -
        `description` -
        `category` -
        `type` -
        `admin` -
        `features` -

    - #### updateServiceEntity

          public void updateServiceEntity()

      Method description

    - #### getComponentId

          public JID getComponentId()

      Description copied from interface: `ServerComponent`
      Method description
      Specified by:
        `getComponentId` in interface `ServerComponent`

    - #### getComponentInfo

          public ComponentInfo getComponentInfo()

      Description copied from interface: `ServerComponent`
      Allows to obtain various informations about components
      Specified by:
        `getComponentInfo` in interface `ServerComponent`
      Returns:
        information about particular component

    - #### getDefaults

          public Map<String,Object> getDefaults(Map<String,Object> params)

      Description copied from interface: `Configurable`
      Returns default configuration settings for the component as a `Map` with keys as configuration property IDs and values as the configuration property values. All the default parameters returned from this method are later passed to the `setProperties(...)` method. Some of them may have changed value if they have been overwritten in the server configuration. The configuration property value can be of any of the basic types: `int`, `long`, `boolean`, `String`.
      Specified by:
        `getDefaults` in interface `Configurable`
      Parameters:
        `params` - is a `Map` with some initial properties set for the starting up server. These parameters can be used as a hints to generate component's default configuration.
      Returns:
        a `Map` with the component default configuration.

    - #### getDefHostName

          public BareJID getDefHostName()

      Method description
      Returns:
        a value of `BareJID`

    - #### getDefVHostItem

          public BareJID getDefVHostItem()

      Method description
      Returns:
        a value of `BareJID`

    - #### getDiscoCategory

          public String getDiscoCategory()

      Method description
      Returns:
        a value of `String`

    - #### getDiscoCategoryType

          public String getDiscoCategoryType()

      Method description
      Returns:
        a value of `String`

    - #### getDiscoDescription

          public String getDiscoDescription()

      Method description
      Returns:
        a value of `String`

    - #### getDiscoFeatures

          @Deprecated
          public List<Element> getDiscoFeatures()

      Deprecated.
      Exists for backward compatibility with the old API.
      Returns:
        a value of `List<Element>`

    - #### getDiscoFeatures

          public List<Element> getDiscoFeatures(JID from)

      Description copied from interface: `XMPPService`
      Returns features for top level disco info
      Specified by:
        `getDiscoFeatures` in interface `XMPPService`
      Parameters:
        `from` - a request sender address. Some service disco elements are meant to be available only to system administrarors. The component is responsible to check whether the sender is the component administrator and return results appropriate.
      Returns:
        a list of elements with service discovery features.

    - #### getDiscoInfo

          @Deprecated
          public Element getDiscoInfo(String node,
                                                  JID jid)

      Deprecated.
      Exists for backward compatibility with the old API.
      Parameters:
        `node` -
        `jid` -
      Returns:
        a value of `Element`

    - #### getDiscoInfo

          public Element getDiscoInfo(String node,
                                      JID jid,
                                      JID from)

      Description copied from interface: `XMPPService`
      Returns service discovery info for the component. If the jid is null then this is info for the top level request. SM may return disco info on the top level. Other components should not.
      Specified by:
        `getDiscoInfo` in interface `XMPPService`
      Parameters:
        `node` - is service discovery node for which the request is made. Is normally null for the component top level request.
        `jid` - is the jid to which the request has been made.
        `from` - is the request sender address. Some service discovery information is only meant for administrators.
      Returns:
        returns an XML Element with service discovery data.

    - #### getDiscoItems

          @Deprecated
          public List<Element> getDiscoItems(String node,
                                                         JID jid)

      Deprecated.
      Exists for backward compatibility with the old API.
      Parameters:
        `node` -
        `jid` -
      Returns:
        a value of `List<Element>`

    - #### getDiscoItems

          public List<Element> getDiscoItems(String node,
                                             JID jid,
                                             JID from)

      Description copied from interface: `XMPPService`
      Returns service discovery items for the component. If the JID is null then this is request for the top level request. SM may return disco items on the top level, other components should just return it's top level service discovery item for null node.
      Specified by:
        `getDiscoItems` in interface `XMPPService`
      Parameters:
        `node` - is a service discovery node for which the request has been made.
        `jid` - is the jid to which the request has been made.
        `from` - is the request sender address. Some service discovery information is only meant for administrators.
      Returns:
        a list of service discovery items for this component or the component itself disco item for the top level request.

    - #### getName

          public String getName()

      Description copied from interface: `ServerComponent`
      Method description
      Specified by:
        `getName` in interface `ServerComponent`

    - #### getStatistics

          public void getStatistics(StatisticsList list)

    - #### getScriptItems

          public List<Element> getScriptItems(String node,
                                              JID jid,
                                              JID from)

      Method description
      Parameters:
        `node` -
        `jid` -
        `from` -
      Returns:
        a value of `List<Element>`

    - #### getVHostItem

          public VHostItem getVHostItem(String domain)

      Method description
      Parameters:
        `domain` -
      Returns:
        a value of `VHostItem`

    - #### isAdmin

          public boolean isAdmin(JID jid)

      Method description
      Parameters:
        `jid` -
      Returns:
        a value of `boolean`

    - #### isInitializationComplete

          public boolean isInitializationComplete()

      Description copied from interface: `ServerComponent`
      Method returns information about whether the initialization process (initializationCompleted()) method has been called.
      Specified by:
        `isInitializationComplete` in interface `ServerComponent`
      Returns:
        `true` if initialization of the object has been completed `false` otherwise

    - #### isLocalDomain

          public boolean isLocalDomain(String domain)

      Method description
      Parameters:
        `domain` -
      Returns:
        a value of `boolean`

    - #### isLocalDomainOrComponent

          public boolean isLocalDomainOrComponent(String domain)

      Method description
      Parameters:
        `domain` -
      Returns:
        a value of `boolean`

    - #### isSubdomain

          public boolean isSubdomain()

      Method returns true is component should be represented as subdomain
      Returns:
        a value of `boolean`

    - #### isTrusted

          public boolean isTrusted(JID jid)

    - #### isTrusted

          public boolean isTrusted(String jid)

    - #### setName

          public void setName(String name)

      Description copied from interface: `ServerComponent`
      Method description
      Specified by:
        `setName` in interface `ServerComponent`

    - #### setProperties

          public void setProperties(Map<String,Object> props)
                             throws ConfigurationException

      Description copied from interface: `Configurable`
      Sets all configuration properties for the object.
      Specified by:
        `setProperties` in interface `Configurable`
      Parameters:
        `props` - `Map` with the configuration
      Throws:
        `ConfigurationException` - - if setting configuration will fail which will make it unable to work

    - #### setVHostManager

          public void setVHostManager(VHostManagerIfc manager)

      Description copied from interface: `VHostListener`
      Sets the VHostManager which works on this server installation. The VHostManager allows for accessing vritual domain data.
      Specified by:
        `setVHostManager` in interface `VHostListener`
      Parameters:
        `manager` - is a reference to VHostManager available on the server installation.

    - #### getNodesConnected

          public List<JID> getNodesConnected()

    - #### getNodesConnectedWithLocal

          public List<JID> getNodesConnectedWithLocal()

    - #### onNodeConnected

          protected void onNodeConnected(JID jid)

    - #### onNodeDisconnected

          protected void onNodeDisconnected(JID jid)

    - #### processScriptCommand

          protected boolean processScriptCommand(Packet pc,
                                                 Queue<Packet> results)

      Method description
      Parameters:
        `pc` -
        `results` -
      Returns:
        a value of `boolean`

    - #### getScriptCommands

          protected Map<String,CommandIfc> getScriptCommands()

      Method description
      Returns:
        a value of `Map<String,CommandIfc>`

    - #### getServiceEntity

          protected ServiceEntity getServiceEntity()

      Method description
      Returns:
        a value of `ServiceEntity`

    - #### isNonAdminCommands

          protected boolean isNonAdminCommands()

      Method description
      Returns:
        a value of `boolean`

Copyright © 2022 "Tigase, Inc.". All rights reserved.