org.jasig.portal.groups
Class RDBMEntityGroupStore

java.lang.Object
  extended by org.jasig.portal.groups.RDBMEntityGroupStore
All Implemented Interfaces:
IEntityGroupStore, IGroupConstants

public class RDBMEntityGroupStore
extends java.lang.Object
implements IEntityGroupStore, IGroupConstants

Store for EntityGroupImpl.

Version:
$Revision: 1.31 $
Author:
Dan Ellentuck

Field Summary
private static java.lang.String allGroupColumns
           
private static java.lang.String allGroupColumnsWithTableAlias
           
private static java.lang.String allMemberColumns
           
private static java.lang.String countAMemberEntitySql
           
private static java.lang.String countAMemberGroupSql
           
private static java.lang.String countMemberGroupsNamedSql
           
private static java.lang.String deleteMemberEntitySql
           
private static java.lang.String deleteMemberGroupSql
           
private static java.lang.String deleteMembersInGroupSql
           
private static java.lang.String EQ
           
private static java.lang.String EQUALS_PARAM
           
private static java.lang.String findContainingGroupsForEntitySql
           
private static java.lang.String findContainingGroupsForGroupSql
           
private static java.lang.String findGroupsByCreatorSql
           
private static java.lang.String findGroupSql
           
private static java.lang.String findMemberGroupKeysSql
           
private static java.lang.String findMemberGroupSql
           
private static java.lang.String findMemberGroupsSql
           
private static java.lang.String GROUP_CREATOR_COLUMN
           
private static java.lang.String GROUP_DESCRIPTION_COLUMN
           
private static java.lang.String GROUP_ID_COLUMN
           
private static java.lang.String GROUP_NAME_COLUMN
           
private static java.lang.String GROUP_NODE_SEPARATOR
           
private static java.lang.String GROUP_TABLE
           
private static java.lang.String GROUP_TABLE_ALIAS
           
private static java.lang.String GROUP_TABLE_WITH_ALIAS
           
private static java.lang.String GROUP_TYPE_COLUMN
           
private  IGroupService groupService
           
private static java.lang.String insertGroupSql
           
private static java.lang.String insertMemberSql
           
private static org.apache.commons.logging.Log log
           
private static java.lang.String MEMBER_GROUP_ID_COLUMN
           
private static java.lang.String MEMBER_IS_ENTITY
           
private static java.lang.String MEMBER_IS_GROUP
           
private static java.lang.String MEMBER_IS_GROUP_COLUMN
           
private static java.lang.String MEMBER_MEMBER_KEY_COLUMN
           
private static java.lang.String MEMBER_MEMBER_SERVICE_COLUMN
           
private static java.lang.String MEMBER_TABLE
           
private static java.lang.String MEMBER_TABLE_ALIAS
           
private static java.lang.String MEMBER_TABLE_WITH_ALIAS
           
private static java.lang.String QUOTE
           
private static java.lang.String searchGroups
           
private static java.lang.String searchGroupsPartial
           
private static RDBMEntityGroupStore singleton
           
private static java.lang.String updateGroupSql
           
 
Fields inherited from interface org.jasig.portal.groups.IGroupConstants
CHANNEL_CATEGORIES, CONTAINS, ENDS_WITH, EVERYONE, IS, NODE_SEPARATOR, PORTAL_ADMINISTRATORS, STARTS_WITH
 
Constructor Summary
RDBMEntityGroupStore()
          RDBMEntityGroupStore constructor.
 
Method Summary
protected static void commit(java.sql.Connection conn)
           
 boolean contains(IEntityGroup group, IGroupMember member)
          Answers if IGroupMember member is a member of group.
private  boolean containsEntity(IEntityGroup group, IGroupMember member)
           
private  boolean containsGroup(IEntityGroup group, IEntityGroup member)
           
 boolean containsGroupNamed(IEntityGroup containingGroup, java.lang.String memberName)
           
 void delete(IEntityGroup group)
          If this entity exists, delete it.
private  boolean existsInDatabase(IEntityGroup group)
          Answer if the IEntityGroup entity exists in the database.
 IEntityGroup find(java.lang.String groupID)
          Find and return an instance of the group.
 java.util.Iterator findContainingGroups(IEntity ent)
          Find the groups that this entity belongs to.
 java.util.Iterator findContainingGroups(IEntityGroup group)
          Find the groups that this group belongs to.
 java.util.Iterator findContainingGroups(IGroupMember gm)
          Find the groups that this group member belongs to.
private  java.util.Iterator findContainingGroupsForEntity(java.lang.String memberKey, int type)
          Find the groups associated with this member key.
private  java.util.Iterator findContainingGroupsForGroup(java.lang.String serviceName, java.lang.String memberKey, int type)
          Find the groups associated with this member key.
 java.util.Iterator findEntitiesForGroup(IEntityGroup group)
          Find the IEntities that are members of the IEntityGroup.
 java.util.Iterator findGroupsByCreator(java.lang.String creatorID)
          Find the groups with this creatorID.
 ILockableEntityGroup findLockable(java.lang.String groupID)
          Find and return an instance of the group.
 java.lang.String[] findMemberGroupKeys(IEntityGroup group)
          Find the keys of groups that are members of group.
 java.util.Iterator findMemberGroups(IEntityGroup group)
          Find the IUserGroups that are members of the group.
private static java.lang.String getAllGroupColumns()
           
private static java.lang.String getAllGroupColumnsWithTableAlias()
           
private static java.lang.String getAllMemberColumns()
           
private static java.lang.String getCountAMemberEntitySql()
           
private static java.lang.String getCountAMemberGroupSql()
           
private static java.lang.String getCountMemberGroupsNamedSql()
           
private static java.lang.String getDeleteGroupSql(IEntityGroup group)
           
private static java.lang.String getDeleteMemberEntitySql()
           
private static java.lang.String getDeleteMemberGroupSql()
           
private static java.lang.String getDeleteMembersInGroupSql()
           
private static java.lang.String getDeleteMembersInGroupSql(IEntityGroup group)
           
private static java.lang.String getFindContainingGroupsForEntitySql()
           
private static java.lang.String getFindContainingGroupsForGroupSql()
           
private static java.lang.String getFindGroupsByCreatorSql()
           
private static java.lang.String getFindGroupSql()
           
private static java.lang.String getFindMemberGroupKeysSql()
           
private static java.lang.String getFindMemberGroupsSql()
           
 IGroupService getGroupService()
           
private static java.lang.String getInsertGroupSql()
           
private static java.lang.String getInsertMemberSql()
           
private  java.lang.String getNextKey()
           
private static java.lang.String getUpdateGroupSql()
           
private static java.lang.String groupAlias(java.lang.String column)
           
private  void initialize()
          Get the node separator character from the GroupServiceConfiguration.
private  IEntityGroup instanceFromResultSet(java.sql.ResultSet rs)
          Find and return an instance of the group.
private  ILockableEntityGroup lockableInstanceFromResultSet(java.sql.ResultSet rs)
          Find and return an instance of the group.
protected static void logNoTransactionWarning()
           
private static java.lang.String memberAlias(java.lang.String column)
           
 IEntity newEntity(java.lang.Class type, java.lang.String key)
           
 IEntityGroup newInstance(java.lang.Class type)
           
private  IEntityGroup newInstance(java.lang.String newKey, java.lang.Class newType, java.lang.String newCreatorID, java.lang.String newName, java.lang.String newDescription)
           
private  ILockableEntityGroup newLockableInstance(java.lang.String newKey, java.lang.Class newType, java.lang.String newCreatorID, java.lang.String newName, java.lang.String newDescription)
           
private  void primAdd(IEntityGroup group, java.sql.Connection conn)
          Insert the entity into the database.
private  void primDelete(IEntityGroup group)
          Delete this entity from the database after first deleting its memberships.
private  IEntityGroup primFind(java.lang.String groupID, boolean lockable)
          Find and return an instance of the group.
private  void primUpdate(IEntityGroup group, java.sql.Connection conn)
          Update the entity in the database.
private  void primUpdateMembers(EntityGroupImpl egi, java.sql.Connection conn)
          Insert and delete group membership rows.
protected static void rollback(java.sql.Connection conn)
           
 EntityIdentifier[] searchForGroups(java.lang.String query, int method, java.lang.Class leaftype)
          Find EntityIdentifiers for groups whose name matches the query string according to the specified method and matches the provided leaf type
protected static void setAutoCommit(java.sql.Connection conn, boolean newValue)
           
 void setGroupService(IGroupService newGroupService)
           
static RDBMEntityGroupStore singleton()
           
private static java.lang.String sqlQuote(java.lang.Object o)
           
 void update(IEntityGroup group)
          Commit this entity AND ITS MEMBERSHIPS to the underlying store.
 void updateMembers(IEntityGroup eg)
          Insert and delete group membership rows inside a transaction.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

private static final org.apache.commons.logging.Log log

singleton

private static RDBMEntityGroupStore singleton

EQ

private static java.lang.String EQ

QUOTE

private static java.lang.String QUOTE

EQUALS_PARAM

private static java.lang.String EQUALS_PARAM

GROUP_TABLE

private static java.lang.String GROUP_TABLE

GROUP_TABLE_ALIAS

private static java.lang.String GROUP_TABLE_ALIAS

GROUP_TABLE_WITH_ALIAS

private static java.lang.String GROUP_TABLE_WITH_ALIAS

GROUP_ID_COLUMN

private static java.lang.String GROUP_ID_COLUMN

GROUP_CREATOR_COLUMN

private static java.lang.String GROUP_CREATOR_COLUMN

GROUP_TYPE_COLUMN

private static java.lang.String GROUP_TYPE_COLUMN

GROUP_NAME_COLUMN

private static java.lang.String GROUP_NAME_COLUMN

GROUP_DESCRIPTION_COLUMN

private static java.lang.String GROUP_DESCRIPTION_COLUMN

allGroupColumns

private static java.lang.String allGroupColumns

allGroupColumnsWithTableAlias

private static java.lang.String allGroupColumnsWithTableAlias

countAMemberGroupSql

private static java.lang.String countAMemberGroupSql

countMemberGroupsNamedSql

private static java.lang.String countMemberGroupsNamedSql

countAMemberEntitySql

private static java.lang.String countAMemberEntitySql

findContainingGroupsForEntitySql

private static java.lang.String findContainingGroupsForEntitySql

findContainingGroupsForGroupSql

private static java.lang.String findContainingGroupsForGroupSql

findGroupSql

private static java.lang.String findGroupSql

findGroupsByCreatorSql

private static java.lang.String findGroupsByCreatorSql

findMemberGroupKeysSql

private static java.lang.String findMemberGroupKeysSql

findMemberGroupSql

private static java.lang.String findMemberGroupSql

findMemberGroupsSql

private static java.lang.String findMemberGroupsSql

insertGroupSql

private static java.lang.String insertGroupSql

updateGroupSql

private static java.lang.String updateGroupSql

MEMBER_TABLE

private static java.lang.String MEMBER_TABLE

MEMBER_TABLE_ALIAS

private static java.lang.String MEMBER_TABLE_ALIAS

MEMBER_TABLE_WITH_ALIAS

private static java.lang.String MEMBER_TABLE_WITH_ALIAS

MEMBER_GROUP_ID_COLUMN

private static java.lang.String MEMBER_GROUP_ID_COLUMN

MEMBER_MEMBER_SERVICE_COLUMN

private static java.lang.String MEMBER_MEMBER_SERVICE_COLUMN

MEMBER_MEMBER_KEY_COLUMN

private static java.lang.String MEMBER_MEMBER_KEY_COLUMN

MEMBER_IS_GROUP_COLUMN

private static java.lang.String MEMBER_IS_GROUP_COLUMN

MEMBER_IS_ENTITY

private static java.lang.String MEMBER_IS_ENTITY

MEMBER_IS_GROUP

private static java.lang.String MEMBER_IS_GROUP

GROUP_NODE_SEPARATOR

private static java.lang.String GROUP_NODE_SEPARATOR

allMemberColumns

private static java.lang.String allMemberColumns

deleteMembersInGroupSql

private static java.lang.String deleteMembersInGroupSql

deleteMemberGroupSql

private static java.lang.String deleteMemberGroupSql

deleteMemberEntitySql

private static java.lang.String deleteMemberEntitySql

insertMemberSql

private static java.lang.String insertMemberSql

searchGroupsPartial

private static java.lang.String searchGroupsPartial

searchGroups

private static java.lang.String searchGroups

groupService

private IGroupService groupService
Constructor Detail

RDBMEntityGroupStore

public RDBMEntityGroupStore()
RDBMEntityGroupStore constructor.

Method Detail

initialize

private void initialize()
Get the node separator character from the GroupServiceConfiguration. Default it to IGroupConstants.NODE_SEPARATOR.


commit

protected static void commit(java.sql.Connection conn)
                      throws java.sql.SQLException
Parameters:
conn - java.sql.Connection
Throws:
java.sql.SQLException

contains

public boolean contains(IEntityGroup group,
                        IGroupMember member)
                 throws GroupsException
Answers if IGroupMember member is a member of group.

Specified by:
contains in interface IEntityGroupStore
Parameters:
group - org.jasig.portal.groups.IEntityGroup
member - org.jasig.portal.groups.IGroupMember
Returns:
boolean
Throws:
GroupsException

containsEntity

private boolean containsEntity(IEntityGroup group,
                               IGroupMember member)
                        throws GroupsException
Throws:
GroupsException

containsGroup

private boolean containsGroup(IEntityGroup group,
                              IEntityGroup member)
                       throws GroupsException
Throws:
GroupsException

containsGroupNamed

public boolean containsGroupNamed(IEntityGroup containingGroup,
                                  java.lang.String memberName)
                           throws GroupsException
Throws:
GroupsException

delete

public void delete(IEntityGroup group)
            throws GroupsException
If this entity exists, delete it.

Specified by:
delete in interface IEntityGroupStore
Parameters:
group - org.jasig.portal.groups.IEntityGroup
Throws:
GroupsException

existsInDatabase

private boolean existsInDatabase(IEntityGroup group)
                          throws GroupsException
Answer if the IEntityGroup entity exists in the database.

Parameters:
group - IEntityGroup
Returns:
boolean
Throws:
GroupsException

find

public IEntityGroup find(java.lang.String groupID)
                  throws GroupsException
Find and return an instance of the group.

Specified by:
find in interface IEntityGroupStore
Parameters:
groupID - the group ID
Returns:
org.jasig.portal.groups.IEntityGroup
Throws:
GroupsException

findContainingGroups

public java.util.Iterator findContainingGroups(IEntity ent)
                                        throws GroupsException
Find the groups that this entity belongs to.

Parameters:
ent - the entity in question
Returns:
java.util.Iterator
Throws:
GroupsException

findContainingGroups

public java.util.Iterator findContainingGroups(IEntityGroup group)
                                        throws GroupsException
Find the groups that this group belongs to.

Parameters:
group - org.jasig.portal.groups.IEntityGroup
Returns:
java.util.Iterator
Throws:
GroupsException

findContainingGroups

public java.util.Iterator findContainingGroups(IGroupMember gm)
                                        throws GroupsException
Find the groups that this group member belongs to.

Specified by:
findContainingGroups in interface IEntityGroupStore
Parameters:
gm - the group member in question
Returns:
java.util.Iterator
Throws:
GroupsException

findContainingGroupsForEntity

private java.util.Iterator findContainingGroupsForEntity(java.lang.String memberKey,
                                                         int type)
                                                  throws GroupsException
Find the groups associated with this member key.

Parameters:
memberKey -
type -
Returns:
java.util.Iterator
Throws:
GroupsException

findContainingGroupsForGroup

private java.util.Iterator findContainingGroupsForGroup(java.lang.String serviceName,
                                                        java.lang.String memberKey,
                                                        int type)
                                                 throws GroupsException
Find the groups associated with this member key.

Parameters:
serviceName -
memberKey -
type -
Returns:
java.util.Iterator
Throws:
GroupsException

findEntitiesForGroup

public java.util.Iterator findEntitiesForGroup(IEntityGroup group)
                                        throws GroupsException
Find the IEntities that are members of the IEntityGroup.

Specified by:
findEntitiesForGroup in interface IEntityGroupStore
Parameters:
group - the entity group in question
Returns:
java.util.Iterator
Throws:
GroupsException

findGroupsByCreator

public java.util.Iterator findGroupsByCreator(java.lang.String creatorID)
                                       throws GroupsException
Find the groups with this creatorID.

Parameters:
creatorID -
Returns:
java.util.Iterator
Throws:
GroupsException

findLockable

public ILockableEntityGroup findLockable(java.lang.String groupID)
                                  throws GroupsException
Find and return an instance of the group.

Specified by:
findLockable in interface IEntityGroupStore
Parameters:
groupID - the group ID
Returns:
org.jasig.portal.groups.ILockableEntityGroup
Throws:
GroupsException

findMemberGroupKeys

public java.lang.String[] findMemberGroupKeys(IEntityGroup group)
                                       throws GroupsException
Find the keys of groups that are members of group.

Specified by:
findMemberGroupKeys in interface IEntityGroupStore
Parameters:
group - the org.jasig.portal.groups.IEntityGroup
Returns:
String[]
Throws:
GroupsException

findMemberGroups

public java.util.Iterator findMemberGroups(IEntityGroup group)
                                    throws GroupsException
Find the IUserGroups that are members of the group.

Specified by:
findMemberGroups in interface IEntityGroupStore
Parameters:
group - org.jasig.portal.groups.IEntityGroup
Returns:
java.util.Iterator
Throws:
GroupsException

getAllGroupColumns

private static java.lang.String getAllGroupColumns()
Returns:
java.lang.String

getAllGroupColumnsWithTableAlias

private static java.lang.String getAllGroupColumnsWithTableAlias()
Returns:
java.lang.String

getAllMemberColumns

private static java.lang.String getAllMemberColumns()
Returns:
java.lang.String

getCountAMemberEntitySql

private static java.lang.String getCountAMemberEntitySql()
Returns:
java.lang.String

getCountAMemberGroupSql

private static java.lang.String getCountAMemberGroupSql()
Returns:
java.lang.String

getCountMemberGroupsNamedSql

private static java.lang.String getCountMemberGroupsNamedSql()
Returns:
java.lang.String

getDeleteGroupSql

private static java.lang.String getDeleteGroupSql(IEntityGroup group)
Returns:
java.lang.String

getDeleteMemberEntitySql

private static java.lang.String getDeleteMemberEntitySql()
Returns:
java.lang.String

getDeleteMemberGroupSql

private static java.lang.String getDeleteMemberGroupSql()
Returns:
java.lang.String

getDeleteMembersInGroupSql

private static java.lang.String getDeleteMembersInGroupSql()
Returns:
java.lang.String

getDeleteMembersInGroupSql

private static java.lang.String getDeleteMembersInGroupSql(IEntityGroup group)
Returns:
java.lang.String

getFindContainingGroupsForEntitySql

private static java.lang.String getFindContainingGroupsForEntitySql()
Returns:
java.lang.String

getFindContainingGroupsForGroupSql

private static java.lang.String getFindContainingGroupsForGroupSql()
Returns:
java.lang.String

getFindGroupsByCreatorSql

private static java.lang.String getFindGroupsByCreatorSql()
Returns:
java.lang.String

getFindGroupSql

private static java.lang.String getFindGroupSql()
Returns:
java.lang.String

getFindMemberGroupKeysSql

private static java.lang.String getFindMemberGroupKeysSql()
Returns:
java.lang.String

getFindMemberGroupsSql

private static java.lang.String getFindMemberGroupsSql()
Returns:
java.lang.String

getGroupService

public IGroupService getGroupService()
Returns:
org.jasig.portal.groups.IGroupService

getInsertGroupSql

private static java.lang.String getInsertGroupSql()
Returns:
java.lang.String

getInsertMemberSql

private static java.lang.String getInsertMemberSql()
Returns:
java.lang.String

getNextKey

private java.lang.String getNextKey()
                             throws java.lang.Exception
Returns:
java.lang.String
Throws:
java.lang.Exception

getUpdateGroupSql

private static java.lang.String getUpdateGroupSql()
Returns:
java.lang.String

instanceFromResultSet

private IEntityGroup instanceFromResultSet(java.sql.ResultSet rs)
                                    throws java.sql.SQLException,
                                           GroupsException
Find and return an instance of the group.

Parameters:
rs - the SQL result set
Returns:
org.jasig.portal.groups.IEntityGroup
Throws:
java.sql.SQLException
GroupsException

lockableInstanceFromResultSet

private ILockableEntityGroup lockableInstanceFromResultSet(java.sql.ResultSet rs)
                                                    throws java.sql.SQLException,
                                                           GroupsException
Find and return an instance of the group.

Parameters:
rs - the SQL result set
Returns:
org.jasig.portal.groups.ILockableEntityGroup
Throws:
java.sql.SQLException
GroupsException

logNoTransactionWarning

protected static void logNoTransactionWarning()

newEntity

public IEntity newEntity(java.lang.Class type,
                         java.lang.String key)
                  throws GroupsException
Returns:
org.jasig.portal.groups.IEntity
Throws:
GroupsException

newInstance

public IEntityGroup newInstance(java.lang.Class type)
                         throws GroupsException
Specified by:
newInstance in interface IEntityGroupStore
Returns:
org.jasig.portal.groups.IEntityGroup
Throws:
GroupsException

newInstance

private IEntityGroup newInstance(java.lang.String newKey,
                                 java.lang.Class newType,
                                 java.lang.String newCreatorID,
                                 java.lang.String newName,
                                 java.lang.String newDescription)
                          throws GroupsException
Returns:
org.jasig.portal.groups.IEntityGroup
Throws:
GroupsException

newLockableInstance

private ILockableEntityGroup newLockableInstance(java.lang.String newKey,
                                                 java.lang.Class newType,
                                                 java.lang.String newCreatorID,
                                                 java.lang.String newName,
                                                 java.lang.String newDescription)
                                          throws GroupsException
Returns:
org.jasig.portal.groups.ILockableEntityGroup
Throws:
GroupsException

groupAlias

private static java.lang.String groupAlias(java.lang.String column)
Returns:
java.lang.String

memberAlias

private static java.lang.String memberAlias(java.lang.String column)
Returns:
java.lang.String

primAdd

private void primAdd(IEntityGroup group,
                     java.sql.Connection conn)
              throws java.sql.SQLException,
                     GroupsException
Insert the entity into the database.

Parameters:
group - org.jasig.portal.groups.IEntityGroup
conn - the database connection
Throws:
java.sql.SQLException
GroupsException

primDelete

private void primDelete(IEntityGroup group)
                 throws java.sql.SQLException
Delete this entity from the database after first deleting its memberships. Exception java.sql.SQLException - if we catch a SQLException, we rollback and re-throw it.

Parameters:
group - org.jasig.portal.groups.IEntityGroup
Throws:
java.sql.SQLException

primFind

private IEntityGroup primFind(java.lang.String groupID,
                              boolean lockable)
                       throws GroupsException
Find and return an instance of the group.

Parameters:
groupID - the group ID
lockable - boolean
Returns:
org.jasig.portal.groups.IEntityGroup
Throws:
GroupsException

primUpdate

private void primUpdate(IEntityGroup group,
                        java.sql.Connection conn)
                 throws java.sql.SQLException,
                        GroupsException
Update the entity in the database.

Parameters:
group - org.jasig.portal.groups.IEntityGroup
conn - the database connection
Throws:
java.sql.SQLException
GroupsException

primUpdateMembers

private void primUpdateMembers(EntityGroupImpl egi,
                               java.sql.Connection conn)
                        throws java.sql.SQLException
Insert and delete group membership rows. The transaction is maintained by the caller.

Parameters:
egi - org.jasig.portal.groups.EntityGroupImpl
conn - the database connection
Throws:
java.sql.SQLException

rollback

protected static void rollback(java.sql.Connection conn)
                        throws java.sql.SQLException
Parameters:
conn - java.sql.Connection
Throws:
java.sql.SQLException

searchForGroups

public EntityIdentifier[] searchForGroups(java.lang.String query,
                                          int method,
                                          java.lang.Class leaftype)
                                   throws GroupsException
Description copied from interface: IEntityGroupStore
Find EntityIdentifiers for groups whose name matches the query string according to the specified method and matches the provided leaf type

Specified by:
searchForGroups in interface IEntityGroupStore
Throws:
GroupsException

setAutoCommit

protected static void setAutoCommit(java.sql.Connection conn,
                                    boolean newValue)
                             throws java.sql.SQLException
Parameters:
conn - java.sql.Connection
newValue - boolean
Throws:
java.sql.SQLException - The exception description.

setGroupService

public void setGroupService(IGroupService newGroupService)
Parameters:
newGroupService - org.jasig.portal.groups.IGroupService

singleton

public static RDBMEntityGroupStore singleton()
                                      throws GroupsException
Returns:
org.jasig.portal.groups.RDBMEntityGroupStore
Throws:
GroupsException

sqlQuote

private static java.lang.String sqlQuote(java.lang.Object o)
Returns:
java.lang.String

update

public void update(IEntityGroup group)
            throws GroupsException
Commit this entity AND ITS MEMBERSHIPS to the underlying store.

Specified by:
update in interface IEntityGroupStore
Parameters:
group - org.jasig.portal.groups.IEntityGroup
Throws:
GroupsException

updateMembers

public void updateMembers(IEntityGroup eg)
                   throws GroupsException
Insert and delete group membership rows inside a transaction.

Specified by:
updateMembers in interface IEntityGroupStore
Parameters:
eg - org.jasig.portal.groups.IEntityGroup
Throws:
GroupsException