Group.js

/**
* @classdesc Represents a user group in CompleteFTP. Instances of this class should be obtained using 
* {@link GroupManager#get GroupManager.get}.
* @class
* @hideconstructor
*/

Group = function () {
	/**
	* The ID of this group.
	*
	* @type {String}
	* @readonly
	*/
	this.id = null;

	/**
	* The name of this group. Group names must be unique.
	*
	* @type {String}
	*/
	this.name = null;

	/**
	* Is this an inbuilt group that is created automatically during installation?
	*
	* @type {Boolean}
	* @readonly
	*/
	this.inbuilt = null;

	/**
	* The date and time when this group was created.
	*
	* @type {Date}
	* @readonly
	*/
	this.createdTime = null;

	/**
	* The date and time when this group was last modified.
	*
	* @type {Date}
	* @readonly
	*/
	this.modifiedTime = null;

	/**
	* Deletes this group.
	*
	* @method
	*/
	this.remove = function () { };

	/**
	* An object that allows members of this group to be managed.
	*
	* @type {Members}
	*/
	this.members = null;

}

/**
 * @classdesc Provides APIs for managing members of the current group. Instances of this class 
 * should be obtained using {@link Group#members Group.members}.
 *
 * @class
 * @hideconstructor
*/
Members = function () {
	/**
	* Adds the given user to the current group.
	*
	* @method 
	* @param {(String|User)} user Name of the user or {@link User} object.
	*/
	this.add = function (user) { }

	/**
	* Removes the given user from the current group.
	* 
	* @method
	* @param {(String|User)} user Name of the user or {@link User} object.
	*/
	this.remove = function (user) { }

	/**
	* Returns a member list of the current group as an array of strings being the names of the users.
	*
	* @method
	* @return {String[]}
	*/
	this.toArray = function () { }
}