Package org.jivesoftware.openfire.group
Class Group
java.lang.Object
org.jivesoftware.openfire.group.Group
- All Implemented Interfaces:
Externalizable
,Serializable
,Cacheable
Groups organize users into a single entity for easier management.
As grouped entities are thought to represent end-user entities, a group can be thought of as a collection of
bare (not full) JIDs. The method of the Group class and its associated API will accept both bare and full
JIDs, but are expected to 'cast down' a full JID to a bare JID prior to processing it.
The actual group implementation is controlled by the
GroupProvider
, which
includes things like the group name, the members, and administrators. Each group
also has properties, which are always stored in the Openfire database.- Author:
- Matt Tucker
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionGroup()
Constructor added for Externalizable.Group
(String name, String description, Collection<org.xmpp.packet.JID> members, Collection<org.xmpp.packet.JID> administrators) Constructs a new group.Group
(String name, String description, Collection<org.xmpp.packet.JID> members, Collection<org.xmpp.packet.JID> administrators, Map<String, String> properties) Constructs a new group. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Collection<org.xmpp.packet.JID>
Returns a Collection of the group administrators.Collection<org.xmpp.packet.JID>
getAll()
Returns a read-only, unmodifiable collection of everyone in the group.int
Returns the approximate size of the Object in bytes.Returns the description of the group.getJID()
Returns a JID for the group based on the group name.Collection<org.xmpp.packet.JID>
Returns a Collection of the group members.getName()
Returns the name of the group.Returns all extended properties of the group.When contact list group sharing has been enabled, the users in his group will be added to the contact list of every entity that the group is shared with.Defines to which entities this group is shared, using the contact list group sharing.Defines the groups of users with which this group is shared if contact list group sharing is enabled and this group is shared with (other) groups (as defined bygetSharedWith()
).int
hashCode()
boolean
Returns true if the provided username belongs to a user of the group.boolean
isUser
(org.xmpp.packet.JID user) Returns true if the provided JID belongs to a user that is part of the group.void
static Group
resolveFrom
(Object proxy) Attempt to resolve the given object into a Group.static boolean
Search for a JID within a group.void
setDescription
(String description) Sets the description of the group.void
Sets the name of the group.void
shareWithEverybody
(String displayName) Enable contact list group sharing for this group.void
Disable contact list group sharing for this group.void
shareWithUsersInGroups
(List<String> groupNames, String displayName) Enable contact list group sharing for this group.void
shareWithUsersInSameGroup
(String displayName) Enable contact list group sharing for this group.toString()
void
-
Field Details
-
SHARED_ROSTER_SHOW_IN_ROSTER_PROPERTY_KEY
- See Also:
-
SHARED_ROSTER_DISPLAY_NAME_PROPERTY_KEY
- See Also:
-
SHARED_ROSTER_GROUP_LIST_PROPERTY_KEY
- See Also:
-
-
Constructor Details
-
Group
public Group()Constructor added for Externalizable. Do not use this constructor. -
Group
public Group(String name, String description, Collection<org.xmpp.packet.JID> members, Collection<org.xmpp.packet.JID> administrators) Constructs a new group. Note: this constructor is intended for implementors of theGroupProvider
interface. To create a new group, use theGroupManager.createGroup(String)
method.- Parameters:
name
- the name.description
- the description.members
- a Collection of the group members.administrators
- a Collection of the group administrators.
-
Group
public Group(String name, String description, Collection<org.xmpp.packet.JID> members, Collection<org.xmpp.packet.JID> administrators, Map<String, String> properties) Constructs a new group. Note: this constructor is intended for implementors of theGroupProvider
interface. To create a new group, use theGroupManager.createGroup(String)
method.- Parameters:
name
- the name.description
- the description.members
- a Collection of the group members.administrators
- a Collection of the group administrators.properties
- a Map of properties with names and its values.
-
-
Method Details
-
getJID
Returns a JID for the group based on the group name. This instance will be of class GroupJID to distinguish it from other types of JIDs in the system. This method is synchronized to ensure each group has only a single JID instance created via lazy instantiation.- Returns:
- A JID for the group.
-
getName
Returns the name of the group. For example, 'XYZ Admins'.- Returns:
- the name of the group.
-
setName
Sets the name of the group. For example, 'XYZ Admins'. This method is restricted to those with group administration permission.- Parameters:
name
- the name for the group.
-
getDescription
Returns the description of the group. The description often summarizes a group's function, such as 'Administrators of the XYZ forum'.- Returns:
- the description of the group.
-
setDescription
Sets the description of the group. The description often summarizes a group's function, such as 'Administrators of the XYZ forum'. This method is restricted to those with group administration permission.- Parameters:
description
- the description of the group.
-
toString
-
getProperties
Returns all extended properties of the group. Groups have an arbitrary number of extended properties. The returned collection can be modified to add new properties or remove existing ones.- Returns:
- the extended properties.
-
getAll
Returns a read-only, unmodifiable collection of everyone in the group.- Returns:
- a read-only Collection of the group administrators + members.
-
getAdmins
Returns a Collection of the group administrators. Changes made the collection will be applied and persisted via the GroupProvider.- Returns:
- a Collection of the group administrators.
-
getMembers
Returns a Collection of the group members. Changes made the collection will be applied and persisted via the GroupProvider.- Returns:
- a Collection of the group members.
-
isUser
public boolean isUser(org.xmpp.packet.JID user) Returns true if the provided JID belongs to a user that is part of the group.- Parameters:
user
- the JID address of the user to check.- Returns:
- true if the specified user is a group user.
-
isUser
Returns true if the provided username belongs to a user of the group.- Parameters:
username
- the username to check.- Returns:
- true if the provided username belongs to a user of the group.
-
getCachedSize
Description copied from interface:Cacheable
Returns the approximate size of the Object in bytes. The size should be considered to be a best estimate of how much memory the Object occupies and may be based on empirical trials or dynamic calculations.- Specified by:
getCachedSize
in interfaceCacheable
- Returns:
- the size of the Object in bytes.
- Throws:
CannotCalculateSizeException
- if the size cannot be calculated
-
hashCode
public int hashCode() -
equals
-
writeExternal
- Specified by:
writeExternal
in interfaceExternalizable
- Throws:
IOException
-
readExternal
- Specified by:
readExternal
in interfaceExternalizable
- Throws:
IOException
ClassNotFoundException
-
search
Search for a JID within a group. If the given haystack is not resolvable to a group, this method returns false.- Parameters:
needle
- A JID, possibly a member/admin of the given grouphaystack
- Presumably a Group, a Group name, or a JID that represents a Group- Returns:
- true if the JID (needle) is found in the group (haystack)
-
resolveFrom
Attempt to resolve the given object into a Group.- Parameters:
proxy
- Presumably a Group, a Group name, or a JID that represents a Group- Returns:
- The corresponding group, or null if the proxy cannot be resolved as a group
-