Package org.jivesoftware.openfire.group
Class Group
- java.lang.Object
-
- org.jivesoftware.openfire.group.Group
-
- All Implemented Interfaces:
Externalizable
,Serializable
,Cacheable
public class Group extends Object implements Cacheable, Externalizable
Groups organize users into a single entity for easier management.The actual group implementation is controlled by the
GroupProvider
, which includes things like the group name, the members, and adminstrators. Each group also has properties, which are always stored in the Openfire database.- Author:
- Matt Tucker
- See Also:
GroupManager.createGroup(String)
, Serialized Form
-
-
Constructor Summary
Constructors Constructor Description Group()
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
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object object)
Collection<org.xmpp.packet.JID>
getAdmins()
Returns a Collection of the group administrators.Collection<org.xmpp.packet.JID>
getAll()
Returns a Collection of everyone in the group.int
getCachedSize()
Returns the approximate size of the Object in bytes.String
getDescription()
Returns the description of the group.GroupJID
getJID()
Returns a JID for the group based on the group name.Collection<org.xmpp.packet.JID>
getMembers()
Returns a Collection of the group members.String
getName()
Returns the name of the group.PersistableMap<String,String>
getProperties()
Returns all extended properties of the group.int
hashCode()
boolean
isUser(String username)
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
readExternal(ObjectInput in)
static Group
resolveFrom(Object proxy)
Attempt to resolve the given object into a Group.static boolean
search(org.xmpp.packet.JID needle, Object haystack)
Search for a JID within a group.void
setDescription(String description)
Sets the description of the group.void
setName(String name)
Sets the name of the group.String
toString()
void
writeExternal(ObjectOutput out)
-
-
-
Constructor Detail
-
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 Detail
-
getJID
public GroupJID 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
public String getName()
Returns the name of the group. For example, 'XYZ Admins'.- Returns:
- the name of the group.
-
setName
public void setName(String name)
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
public String 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
public void setDescription(String description)
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.
-
getProperties
public PersistableMap<String,String> 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
public Collection<org.xmpp.packet.JID> getAll()
Returns a Collection of everyone in the group.- Returns:
- a read-only Collection of the group administrators + members.
-
getAdmins
public Collection<org.xmpp.packet.JID> getAdmins()
Returns a Collection of the group administrators.- Returns:
- a Collection of the group administrators.
-
getMembers
public Collection<org.xmpp.packet.JID> getMembers()
Returns a Collection of the group members.- 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
public boolean isUser(String username)
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
public int getCachedSize() throws CannotCalculateSizeException
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
-
writeExternal
public void writeExternal(ObjectOutput out) throws IOException
- Specified by:
writeExternal
in interfaceExternalizable
- Throws:
IOException
-
readExternal
public void readExternal(ObjectInput in) throws IOException, ClassNotFoundException
- Specified by:
readExternal
in interfaceExternalizable
- Throws:
IOException
ClassNotFoundException
-
search
public static boolean search(org.xmpp.packet.JID needle, Object haystack)
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)
-
-