tigase.vhosts
Class VHostItem

java.lang.Object
  extended by tigase.vhosts.VHostItem
All Implemented Interfaces:
RepositoryItem

public class VHostItem
extends Object
implements RepositoryItem

Objects of this class represent virtual host with all hosts configuration settings. In most cases simple domain name string is not enough to deal with the virtual host. VHost can be enabled/disabled. Can be available to selected server components only and so on. Therefore every time there is a detailed information needed for a vhost this classed must be used. This class has it's own XML representation which can be used for creating an instance of the class or can be exported to the XML form for permanent storage:

 
   
   
 
Created: 22 Nov 2008

Version:
$Rev: 1997 $
Author:
Artur Hefczyc

Field Summary
static String ANONYMOUS_ENABLED_ATT
          This is an attribute name for storing information whether anonymous user can login for this domain.
static String COMPONENTS_ELEM
          Element name for the VHostItem XML child keeping list of the server component which can handle packets for this domain.
static String ENABLED_ATT
          This is an attribute name for storing information whether the VHost is enabled or disabled.
static String HOSTNAME_ATT
          This is an attribute name for storing the VHost name.
static String MAX_USERS_NUMBER_ATT
          This is an attribute name for storing the maximum number of users for this virtual domain.
static String OTHER_PARAMS_ELEM
          Element name for the VHostItem XML child keeping all the extra parameters for the domain.
static String REGISTER_ENABLED_ATT
          This is an attribute name for storing information whether user registration is allowed for this domain.
static String VHOST_ELEM
          Element name to for the VHostItem XML storage.
 
Constructor Summary
VHostItem()
           
VHostItem(tigase.xml.Element elem)
          The constructor creates the VHostItem instance from a given XML element.
VHostItem(String vhost)
          The constructor creates the VHostItem instance for a given domain name with default values for all other parameters.
 
Method Summary
 void addCommandFields(Packet packet)
          The method is used for handling ad-hoc commands.
 String[] getComps()
          Returns an array with the server components names which should process packets sent to this domain or null (default) if there is no specific component assigned to this domain.
 String getKey()
          Returns a unique key for the item in the repository.
 long getMaxUsersNumber()
          This method returns the maximum number of user accounts allowed for this domain.
 String getOtherDomainParams()
          This method allows to access the virtual domain other configuration parameters.
 VHostItem getUnmodifiableVHostItem()
           
 String getVhost()
          This method return a virtual host name as a String value.
 void initFromCommand(Packet packet)
          The method used for handling ad-hoc commands.
 void initFromElement(tigase.xml.Element elem)
          The item can be also initialized from a more complex repositories: XML repository or SQL database.
 void initFromPropertyString(String propString)
          The item can be initialized based on the data loaded from a configuration file.
 boolean isAnonymousEnabled()
          This method checks whether anonymous login is enabled for this domain.
 boolean isEnabled()
          Checks whether this domain is set as enabled or not.
 boolean isRegisterEnabled()
          The method checks whether user registration is enabled for this domain or not.
 void setAnonymousEnabled(boolean enabled)
          This method allows to enable or disable anonymous logins for this domain.
 void setComps(String[] comps)
          Sets an array with the server component names by which packets to this domain can be processed.
 void setEnabled(boolean enabled)
          This method allows to enable or disable local domain.
 void setMaxUsersNumber(long maxUsersNumber)
          This method allows to set the maximum number of user accounts allowed for this domain.
 void setOtherDomainParams(String otherParams)
          This method allows to set extra configuration parameters for the virtual domain.
 void setRegisterEnabled(boolean enabled)
          This method allows to enable or disable user account registration for this domain.
 void setVHost(String vhost)
           
 tigase.xml.Element toElement()
          The method exports the VHostItem object to XML representation.
 String toPropertyString()
          The item can be initialized based on the data loaded from a configuration file.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

VHOST_ELEM

public static final String VHOST_ELEM
Element name to for the VHostItem XML storage.

See Also:
Constant Field Values

COMPONENTS_ELEM

public static final String COMPONENTS_ELEM
Element name for the VHostItem XML child keeping list of the server component which can handle packets for this domain. In most cases this element should be empty.

See Also:
Constant Field Values

OTHER_PARAMS_ELEM

public static final String OTHER_PARAMS_ELEM
Element name for the VHostItem XML child keeping all the extra parameters for the domain. This is a container for future extensions and parameters which are not defined yet.

See Also:
Constant Field Values

HOSTNAME_ATT

public static final String HOSTNAME_ATT
This is an attribute name for storing the VHost name.

See Also:
Constant Field Values

ENABLED_ATT

public static final String ENABLED_ATT
This is an attribute name for storing information whether the VHost is enabled or disabled.

See Also:
Constant Field Values

ANONYMOUS_ENABLED_ATT

public static final String ANONYMOUS_ENABLED_ATT
This is an attribute name for storing information whether anonymous user can login for this domain.

See Also:
Constant Field Values

REGISTER_ENABLED_ATT

public static final String REGISTER_ENABLED_ATT
This is an attribute name for storing information whether user registration is allowed for this domain.

See Also:
Constant Field Values

MAX_USERS_NUMBER_ATT

public static final String MAX_USERS_NUMBER_ATT
This is an attribute name for storing the maximum number of users for this virtual domain.

See Also:
Constant Field Values
Constructor Detail

VHostItem

public VHostItem()

VHostItem

public VHostItem(String vhost)
The constructor creates the VHostItem instance for a given domain name with default values for all other parameters. By the default all domain parameters are set to true.

Parameters:
vhost - is a String value with a domain name.

VHostItem

public VHostItem(tigase.xml.Element elem)
The constructor creates the VHostItem instance from a given XML element. Please refer to the class documentation for more details of the XML element.

Parameters:
elem - is an Element object with virtual domain settings.
Method Detail

getUnmodifiableVHostItem

public VHostItem getUnmodifiableVHostItem()

toElement

public tigase.xml.Element toElement()
The method exports the VHostItem object to XML representation.

Specified by:
toElement in interface RepositoryItem
Returns:
an Element object with vhost information.

getComps

public String[] getComps()
Returns an array with the server components names which should process packets sent to this domain or null (default) if there is no specific component assigned to this domain.

Returns:
a String[] object with server component names.

setComps

public void setComps(String[] comps)
Sets an array with the server component names by which packets to this domain can be processed. Every local domain will be handled by VHostListener which returns true for handlesLocalDomains() method call and by all components set via this method.

Parameters:
comps - is an String[] array with server component names.

isEnabled

public boolean isEnabled()
Checks whether this domain is set as enabled or not. This is domain own configuration parameter which allows to temporarly disable domain so packets for this domain are not processed normally. Instead the server returns an error.

Returns:
a boolean value true if the domain is enabled and false if the domain is disabled.

setEnabled

public void setEnabled(boolean enabled)
This method allows to enable or disable local domain. If the domain is disabled packets sent for this domain are not processed normally, instead the server returns an error to the sender. Domain is enabled by default.

Parameters:
enabled - is a boolean value indicating whether the domain is enabled or not.

isRegisterEnabled

public boolean isRegisterEnabled()
The method checks whether user registration is enabled for this domain or not. This is the domain own configuration parameter which allows to disable user accounts registration via XMPP per domain basis.

Returns:
a boolean value indicating whether user account registration is allowed for this domain.

setRegisterEnabled

public void setRegisterEnabled(boolean enabled)
This method allows to enable or disable user account registration for this domain. By default user account registration is enabled.

Parameters:
enabled - is a boolean value indicating whether user account registration is allowed for this domain or not.

isAnonymousEnabled

public boolean isAnonymousEnabled()
This method checks whether anonymous login is enabled for this domain. This is the domain own configuration parameter which allows to disable anonymous logins on per domain basis.

Returns:
a boolean value indicating whether anonymous logins are allowed for this domain.

setAnonymousEnabled

public void setAnonymousEnabled(boolean enabled)
This method allows to enable or disable anonymous logins for this domain. By default anonymous logins are enabled.

Parameters:
enabled - is a boolean value indicating whether anonymous logins are allowed for this domain.

getMaxUsersNumber

public long getMaxUsersNumber()
This method returns the maximum number of user accounts allowed for this domain. This parameter is to allow for limiting number of users on per domain basis.

Returns:
a long value indicating the maximum number of user accounts allowed for this domain.

setMaxUsersNumber

public void setMaxUsersNumber(long maxUsersNumber)
This method allows to set the maximum number of user accounts allowed for this domain. The default value of this parameter is: 0L.

Parameters:
maxUsersNumber - is a long value specifying the maximum number of user accounts allowed for this domain.

getOtherDomainParams

public String getOtherDomainParams()
This method allows to access the virtual domain other configuration parameters. This is future feature API and it is not used right now. It allows to access configuration parameters which are not specified at the time of API definition.

Returns:
a String value with domain extra parameters.

setOtherDomainParams

public void setOtherDomainParams(String otherParams)
This method allows to set extra configuration parameters for the virtual domain. This is future feature API and it is not used right now. It allows to access configuration parameters which are not specified at the time of API definition.

Parameters:
otherParams - is a String value with domain extra parameters.

getVhost

public String getVhost()
This method return a virtual host name as a String value.

Returns:
a String value with the virtual domain name.

setVHost

public void setVHost(String vhost)

initFromPropertyString

public void initFromPropertyString(String propString)
Description copied from interface: RepositoryItem
The item can be initialized based on the data loaded from a configuration file. In such a case the item representation is usually very simplified as a list of parameters separated by a marker. Please note, usually each item is separated from another with a comma, therefore do not use a comma in the item property string. Double collon is commonly used alternative.

Specified by:
initFromPropertyString in interface RepositoryItem
Parameters:
propString - is a property string to initialize the RepositoryItem.

toPropertyString

public String toPropertyString()
Description copied from interface: RepositoryItem
The item can be initialized based on the data loaded from a configuration file. In such a case the item representation is usually very simplified as a list of parameters separated by a marker. Please note, usually each item is separated from another with a comma, therefore do not use a comma in the item property string. Double collon is commonly used alternative.

Specified by:
toPropertyString in interface RepositoryItem
Returns:
a property string representing the repository item in a simplified form.

initFromElement

public void initFromElement(tigase.xml.Element elem)
Description copied from interface: RepositoryItem
The item can be also initialized from a more complex repositories: XML repository or SQL database. In such a case more complex representation is prefered, possibly carrying more infomration about the item. The method is called to initialize the item with a data parsed from an XML representation of the repository.

Specified by:
initFromElement in interface RepositoryItem
Parameters:
elem - XML Element with all the item initialization data.

getKey

public String getKey()
Description copied from interface: RepositoryItem
Returns a unique key for the item in the repository. All items are stored in a memory cache which is a Map. And the key returned by this method is the item identifier in the Map.

Specified by:
getKey in interface RepositoryItem
Returns:
an Item key.

addCommandFields

public void addCommandFields(Packet packet)
Description copied from interface: RepositoryItem
The method is used for handling ad-hoc commands. The 'empty' ad-hoc command packet is provided and the Item should fill it with fields for the user.

Specified by:
addCommandFields in interface RepositoryItem
Parameters:
packet - with empty ad-hoc command to fill with fields

initFromCommand

public void initFromCommand(Packet packet)
Description copied from interface: RepositoryItem
The method used for handling ad-hoc commands. After a user fills all given field the ad-hoc command packet is passed back to the item to initialize it with data. Similar method to initFromElement(), but the data source is different.

Specified by:
initFromCommand in interface RepositoryItem
Parameters:
packet - with ad-hoc command filled by the user.


Copyright © 2001-2006 Tigase Developers Team. All rights Reserved.