edu.internet2.middleware.grouper.internal.dao.hib3
Class Hib3GroupSetDAO

java.lang.Object
  extended by edu.internet2.middleware.grouper.internal.dao.hib3.Hib3DAO
      extended by edu.internet2.middleware.grouper.internal.dao.hib3.Hib3GroupSetDAO
All Implemented Interfaces:
GrouperDAO, GroupSetDAO

public class Hib3GroupSetDAO
extends Hib3DAO
implements GroupSetDAO

Version:
$Id: Hib3GroupSetDAO.java,v 1.10 2009-10-20 14:55:50 shilen Exp $
Author:
shilen

Field Summary
 
Fields inherited from class edu.internet2.middleware.grouper.internal.dao.hib3.Hib3DAO
hibernateInitted
 
Constructor Summary
Hib3GroupSetDAO()
           
 
Method Summary
 void delete(GroupSet groupSet)
          delete a group set object
 void delete(Set<GroupSet> groupSets)
          delete a set of group set objects
 void deleteSelfByOwnerAttrDef(String attrDefId)
          delete a group set object
 void deleteSelfByOwnerGroup(Group group)
           
 void deleteSelfByOwnerGroupAndField(String groupId, String field)
          delete a group set object
 void deleteSelfByOwnerStem(String stemId)
          delete a group set object
 Set<GroupSet> findAllByCreator(Member member)
          Returns all GroupSets with the given creator.
 Set<GroupSet> findAllByGroupOwnerAndField(String groupId, Field field)
           
 Set<GroupSet> findAllByMemberGroup(String groupId)
           
 Set<GroupSet> findAllByMemberGroupAndField(String memberId, Field field)
           
 Set<GroupSet> findAllByOwnerAndMemberAndField(String ownerId, String memberId, String fieldId)
           
 Set<GroupSet> findAllByOwnerAttributeDefAndFieldAndMembershipMember(String ownerAttrDefId, String fieldId, Member membershipMember)
          find all group sets by owner attributeDef id, field id, and member who is a member of that owner.
 Set<GroupSet> findAllByOwnerGroupAndFieldAndMembershipMember(String ownerGroupId, String fieldId, Member membershipMember)
          find all group sets by owner group id, field id, and member who is a member of that owner.
 Set<GroupSet> findAllByOwnerStemAndFieldAndMembershipMember(String ownerStemId, String fieldId, Member membershipMember)
          find all group sets by owner stem id, field id, and member who is a member of that owner.
 Set<GroupSet> findAllChildren(GroupSet groupSet)
           
 Set<String> findAllOwnerGroupsByMemberGroup(String groupId)
          Find a set of ownerGroupIds for a memberGroup
 Set<String> findAllOwnerStemsByMemberGroup(String groupId)
          Find a set of ownerStemIds for a memberGroup
 Set<GroupSet> findAllSelfGroupSetsByFieldWherePITGroupExists(String fieldId)
           
 Set<GroupSet> findAllSelfGroupSetsByOwnerWherePITFieldExists(String ownerId)
           
 Set<GroupSet> findBadGroupSetsForCompositeGroups()
          This will find group sets on composite groups with depth = 1, which shouldn't happen..
 GroupSet findById(String groupSetId)
           
 GroupSet findByOwnerMemberFieldParentAndType(String ownerId, String memberId, String fieldId, String parentId, String mshipType, boolean exceptionIfNotFound)
           
 GroupSet findImmediateByOwnerAttrDefAndMemberGroupAndField(String ownerAttrDefId, String memberGroupId, Field field)
          Returns an immediate group set (having depth = 1 and mship_type = effective)
 GroupSet findImmediateByOwnerGroupAndMemberGroupAndField(String ownerGroupId, String memberGroupId, Field field)
          Returns an immediate group set (having depth = 1 and mship_type = effective)
 GroupSet findImmediateByOwnerStemAndMemberGroupAndField(String ownerStemId, String memberGroupId, Field field)
          Returns an immediate group set (having depth = 1 and mship_type = effective)
 GroupSet findImmediateChildByParentAndMemberGroup(GroupSet parentGroupSet, String memberGroupId)
           
 Set<Object[]> findMissingEffectiveGroupSets()
          Find missing effective group sets.
 Set<Object[]> findMissingSelfGroupSetsForAttrDefs()
          Find all missing self group sets for stems.
 Set<Object[]> findMissingSelfGroupSetsForGroups()
          Find all missing self group sets for groups (excluding custom fields).
 Set<Object[]> findMissingSelfGroupSetsForGroupsWithCustomFields()
          Find all missing self group sets for groups with custom fields.
 Set<Object[]> findMissingSelfGroupSetsForStems()
          Find all missing self group sets for stems.
 GroupSet findParentGroupSet(GroupSet groupSet)
           
 GroupSet findSelfAttrDef(String attrDefId, String fieldId)
           
 GroupSet findSelfGroup(String groupId, String fieldId)
           
 GroupSet findSelfStem(String stemId, String fieldId)
           
 Set<GroupSet> findTypeMismatch()
          This currently checks depth=0 groupSets for the default member field only.
static void reset(HibernateSession hibernateSession)
          reset group set
 void save(GroupSet groupSet)
          insert a group set object
 void save(Set<GroupSet> groupSets)
          insert a set of group set objects
 void saveBatch(Set<GroupSet> groupSets)
          insert a batch of group set objects
 void update(GroupSet groupSet)
          update a group set object
 void update(Set<GroupSet> groupSets)
          update a set of group set objects
 
Methods inherited from class edu.internet2.middleware.grouper.internal.dao.hib3.Hib3DAO
evict, evictEntity, evictQueries, getConfiguration, getSessionFactory, initHibernateIfNotInitted, resourceNameFromClassName, session
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Hib3GroupSetDAO

public Hib3GroupSetDAO()
Method Detail

save

public void save(GroupSet groupSet)
Description copied from interface: GroupSetDAO
insert a group set object

Specified by:
save in interface GroupSetDAO
See Also:
GroupSetDAO.save(edu.internet2.middleware.grouper.group.GroupSet)

save

public void save(Set<GroupSet> groupSets)
Description copied from interface: GroupSetDAO
insert a set of group set objects

Specified by:
save in interface GroupSetDAO
See Also:
GroupSetDAO.save(java.util.Set)

saveBatch

public void saveBatch(Set<GroupSet> groupSets)
Description copied from interface: GroupSetDAO
insert a batch of group set objects

Specified by:
saveBatch in interface GroupSetDAO
See Also:
GroupSetDAO.saveBatch(java.util.Set)

delete

public void delete(GroupSet groupSet)
Description copied from interface: GroupSetDAO
delete a group set object

Specified by:
delete in interface GroupSetDAO
See Also:
GroupSetDAO.delete(edu.internet2.middleware.grouper.group.GroupSet)

delete

public void delete(Set<GroupSet> groupSets)
Description copied from interface: GroupSetDAO
delete a set of group set objects

Specified by:
delete in interface GroupSetDAO
See Also:
GroupSetDAO.delete(java.util.Set)

update

public void update(GroupSet groupSet)
Description copied from interface: GroupSetDAO
update a group set object

Specified by:
update in interface GroupSetDAO
See Also:
GroupSetDAO.update(edu.internet2.middleware.grouper.group.GroupSet)

update

public void update(Set<GroupSet> groupSets)
Description copied from interface: GroupSetDAO
update a set of group set objects

Specified by:
update in interface GroupSetDAO
See Also:
GroupSetDAO.update(java.util.Set)

deleteSelfByOwnerGroupAndField

public void deleteSelfByOwnerGroupAndField(String groupId,
                                           String field)
Description copied from interface: GroupSetDAO
delete a group set object

Specified by:
deleteSelfByOwnerGroupAndField in interface GroupSetDAO
See Also:
GroupSetDAO.deleteSelfByOwnerGroupAndField(java.lang.String, java.lang.String)

deleteSelfByOwnerStem

public void deleteSelfByOwnerStem(String stemId)
Description copied from interface: GroupSetDAO
delete a group set object

Specified by:
deleteSelfByOwnerStem in interface GroupSetDAO
See Also:
GroupSetDAO.deleteSelfByOwnerStem(java.lang.String)

reset

public static void reset(HibernateSession hibernateSession)
reset group set

Parameters:
hibernateSession -

findAllByGroupOwnerAndField

public Set<GroupSet> findAllByGroupOwnerAndField(String groupId,
                                                 Field field)
Specified by:
findAllByGroupOwnerAndField in interface GroupSetDAO
Returns:
group set
See Also:
GroupSetDAO.findAllByGroupOwnerAndField(java.lang.String, edu.internet2.middleware.grouper.Field)

findParentGroupSet

public GroupSet findParentGroupSet(GroupSet groupSet)
Specified by:
findParentGroupSet in interface GroupSetDAO
Returns:
the parent group set
See Also:
GroupSetDAO.findParentGroupSet(edu.internet2.middleware.grouper.group.GroupSet)

findAllByMemberGroup

public Set<GroupSet> findAllByMemberGroup(String groupId)
Specified by:
findAllByMemberGroup in interface GroupSetDAO
Returns:
all the group sets where this group is a member and where depth > 0.
See Also:
GroupSetDAO.findAllByMemberGroup(java.lang.String)

findAllByMemberGroupAndField

public Set<GroupSet> findAllByMemberGroupAndField(String memberId,
                                                  Field field)
Specified by:
findAllByMemberGroupAndField in interface GroupSetDAO
Returns:
set of group sets
See Also:
GroupSetDAO.findAllByMemberGroupAndField(java.lang.String, edu.internet2.middleware.grouper.Field)

findById

public GroupSet findById(String groupSetId)
Specified by:
findById in interface GroupSetDAO
Returns:
group set
See Also:
GroupSetDAO.findById(java.lang.String)

findAllChildren

public Set<GroupSet> findAllChildren(GroupSet groupSet)
Specified by:
findAllChildren in interface GroupSetDAO
Returns:
all nested children of the group set
See Also:
GroupSetDAO.findAllChildren(edu.internet2.middleware.grouper.group.GroupSet)

findImmediateChildByParentAndMemberGroup

public GroupSet findImmediateChildByParentAndMemberGroup(GroupSet parentGroupSet,
                                                         String memberGroupId)
Specified by:
findImmediateChildByParentAndMemberGroup in interface GroupSetDAO
Returns:
group set
See Also:
GroupSetDAO.findImmediateChildByParentAndMemberGroup(edu.internet2.middleware.grouper.group.GroupSet, java.lang.String)

findSelfGroup

public GroupSet findSelfGroup(String groupId,
                              String fieldId)
Specified by:
findSelfGroup in interface GroupSetDAO
Returns:
group set
See Also:
GroupSetDAO.findSelfGroup(java.lang.String, java.lang.String)

findSelfStem

public GroupSet findSelfStem(String stemId,
                             String fieldId)
Specified by:
findSelfStem in interface GroupSetDAO
Returns:
group set
See Also:
GroupSetDAO.findSelfStem(java.lang.String, java.lang.String)

findAllSelfGroupSetsByOwnerWherePITFieldExists

public Set<GroupSet> findAllSelfGroupSetsByOwnerWherePITFieldExists(String ownerId)
Specified by:
findAllSelfGroupSetsByOwnerWherePITFieldExists in interface GroupSetDAO
Returns:
set

findAllSelfGroupSetsByFieldWherePITGroupExists

public Set<GroupSet> findAllSelfGroupSetsByFieldWherePITGroupExists(String fieldId)
Specified by:
findAllSelfGroupSetsByFieldWherePITGroupExists in interface GroupSetDAO
Returns:
set

deleteSelfByOwnerGroup

public void deleteSelfByOwnerGroup(Group group)
Specified by:
deleteSelfByOwnerGroup in interface GroupSetDAO
See Also:
GroupSetDAO.deleteSelfByOwnerGroup(edu.internet2.middleware.grouper.Group)

findImmediateByOwnerGroupAndMemberGroupAndField

public GroupSet findImmediateByOwnerGroupAndMemberGroupAndField(String ownerGroupId,
                                                                String memberGroupId,
                                                                Field field)
Description copied from interface: GroupSetDAO
Returns an immediate group set (having depth = 1 and mship_type = effective)

Specified by:
findImmediateByOwnerGroupAndMemberGroupAndField in interface GroupSetDAO
Returns:
group set
See Also:
GroupSetDAO.findImmediateByOwnerGroupAndMemberGroupAndField(java.lang.String, java.lang.String, edu.internet2.middleware.grouper.Field)

findImmediateByOwnerStemAndMemberGroupAndField

public GroupSet findImmediateByOwnerStemAndMemberGroupAndField(String ownerStemId,
                                                               String memberGroupId,
                                                               Field field)
Description copied from interface: GroupSetDAO
Returns an immediate group set (having depth = 1 and mship_type = effective)

Specified by:
findImmediateByOwnerStemAndMemberGroupAndField in interface GroupSetDAO
Returns:
group set
See Also:
GroupSetDAO.findImmediateByOwnerStemAndMemberGroupAndField(java.lang.String, java.lang.String, edu.internet2.middleware.grouper.Field)

findAllByCreator

public Set<GroupSet> findAllByCreator(Member member)
Description copied from interface: GroupSetDAO
Returns all GroupSets with the given creator.

Specified by:
findAllByCreator in interface GroupSetDAO
Returns:
set
See Also:
GroupSetDAO.findAllByCreator(edu.internet2.middleware.grouper.Member)

findMissingSelfGroupSetsForGroups

public Set<Object[]> findMissingSelfGroupSetsForGroups()
Description copied from interface: GroupSetDAO
Find all missing self group sets for groups (excluding custom fields).

Specified by:
findMissingSelfGroupSetsForGroups in interface GroupSetDAO
Returns:
set of array objects where the first element is the group and the second element is the field.
See Also:
GroupSetDAO.findMissingSelfGroupSetsForGroups()

findMissingSelfGroupSetsForGroupsWithCustomFields

public Set<Object[]> findMissingSelfGroupSetsForGroupsWithCustomFields()
Description copied from interface: GroupSetDAO
Find all missing self group sets for groups with custom fields.

Specified by:
findMissingSelfGroupSetsForGroupsWithCustomFields in interface GroupSetDAO
Returns:
set of array objects where the first element is the group and the second element is the field.
See Also:
GroupSetDAO.findMissingSelfGroupSetsForGroupsWithCustomFields()

findMissingSelfGroupSetsForStems

public Set<Object[]> findMissingSelfGroupSetsForStems()
Description copied from interface: GroupSetDAO
Find all missing self group sets for stems.

Specified by:
findMissingSelfGroupSetsForStems in interface GroupSetDAO
Returns:
set of array objects where the first element is the stem and the second element is the field.
See Also:
GroupSetDAO.findMissingSelfGroupSetsForStems()

deleteSelfByOwnerAttrDef

public void deleteSelfByOwnerAttrDef(String attrDefId)
Description copied from interface: GroupSetDAO
delete a group set object

Specified by:
deleteSelfByOwnerAttrDef in interface GroupSetDAO
See Also:
GroupSetDAO.deleteSelfByOwnerAttrDef(java.lang.String)

findImmediateByOwnerAttrDefAndMemberGroupAndField

public GroupSet findImmediateByOwnerAttrDefAndMemberGroupAndField(String ownerAttrDefId,
                                                                  String memberGroupId,
                                                                  Field field)
Description copied from interface: GroupSetDAO
Returns an immediate group set (having depth = 1 and mship_type = effective)

Specified by:
findImmediateByOwnerAttrDefAndMemberGroupAndField in interface GroupSetDAO
Returns:
group set
See Also:
GroupSetDAO.findImmediateByOwnerAttrDefAndMemberGroupAndField(java.lang.String, java.lang.String, edu.internet2.middleware.grouper.Field)

findMissingSelfGroupSetsForAttrDefs

public Set<Object[]> findMissingSelfGroupSetsForAttrDefs()
Description copied from interface: GroupSetDAO
Find all missing self group sets for stems.

Specified by:
findMissingSelfGroupSetsForAttrDefs in interface GroupSetDAO
Returns:
set of array objects where the first element is the stem and the second element is the field.
See Also:
GroupSetDAO.findMissingSelfGroupSetsForAttrDefs()

findSelfAttrDef

public GroupSet findSelfAttrDef(String attrDefId,
                                String fieldId)
Specified by:
findSelfAttrDef in interface GroupSetDAO
Returns:
group set
See Also:
GroupSetDAO.findSelfAttrDef(java.lang.String, java.lang.String)

findAllOwnerGroupsByMemberGroup

public Set<String> findAllOwnerGroupsByMemberGroup(String groupId)
Description copied from interface: GroupSetDAO
Find a set of ownerGroupIds for a memberGroup

Specified by:
findAllOwnerGroupsByMemberGroup in interface GroupSetDAO
Returns:
set
See Also:
GroupSetDAO.findAllOwnerGroupsByMemberGroup(java.lang.String)

findAllOwnerStemsByMemberGroup

public Set<String> findAllOwnerStemsByMemberGroup(String groupId)
Description copied from interface: GroupSetDAO
Find a set of ownerStemIds for a memberGroup

Specified by:
findAllOwnerStemsByMemberGroup in interface GroupSetDAO
Returns:
set
See Also:
GroupSetDAO.findAllOwnerStemsByMemberGroup(java.lang.String)

findByOwnerMemberFieldParentAndType

public GroupSet findByOwnerMemberFieldParentAndType(String ownerId,
                                                    String memberId,
                                                    String fieldId,
                                                    String parentId,
                                                    String mshipType,
                                                    boolean exceptionIfNotFound)
Specified by:
findByOwnerMemberFieldParentAndType in interface GroupSetDAO
Returns:
group set
See Also:
GroupSetDAO.findByOwnerMemberFieldParentAndType(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, boolean)

findAllByOwnerAndMemberAndField

public Set<GroupSet> findAllByOwnerAndMemberAndField(String ownerId,
                                                     String memberId,
                                                     String fieldId)
Specified by:
findAllByOwnerAndMemberAndField in interface GroupSetDAO
Returns:
set
See Also:
GroupSetDAO.findAllByOwnerAndMemberAndField(java.lang.String, java.lang.String, java.lang.String)

findTypeMismatch

public Set<GroupSet> findTypeMismatch()
Description copied from interface: GroupSetDAO
This currently checks depth=0 groupSets for the default member field only.

Specified by:
findTypeMismatch in interface GroupSetDAO
Returns:
groupSets that have the wrong membership type
See Also:
GroupSetDAO.findTypeMismatch()

findBadGroupSetsForCompositeGroups

public Set<GroupSet> findBadGroupSetsForCompositeGroups()
Description copied from interface: GroupSetDAO
This will find group sets on composite groups with depth = 1, which shouldn't happen..

Specified by:
findBadGroupSetsForCompositeGroups in interface GroupSetDAO
Returns:
bad group sets
See Also:
GroupSetDAO.findBadGroupSetsForCompositeGroups()

findMissingEffectiveGroupSets

public Set<Object[]> findMissingEffectiveGroupSets()
Description copied from interface: GroupSetDAO
Find missing effective group sets. Note that this will return some false positives (due to circular group sets) that need to be filtered out.

Specified by:
findMissingEffectiveGroupSets in interface GroupSetDAO
Returns:
set of array objects where the first element is the parent groupSet of the missing groupSet and the second element is the immediate groupSet.
See Also:
GroupSetDAO.findMissingEffectiveGroupSets()

findAllByOwnerGroupAndFieldAndMembershipMember

public Set<GroupSet> findAllByOwnerGroupAndFieldAndMembershipMember(String ownerGroupId,
                                                                    String fieldId,
                                                                    Member membershipMember)
Description copied from interface: GroupSetDAO
find all group sets by owner group id, field id, and member who is a member of that owner. this is used to analyze memberships. Note, this is not a secure method, i.e. doesnt check to see if the grouper session can READ all the groups returned

Specified by:
findAllByOwnerGroupAndFieldAndMembershipMember in interface GroupSetDAO
Returns:
the group sets
See Also:
GroupSetDAO.findAllByOwnerGroupAndFieldAndMembershipMember(String, String, Member)

findAllByOwnerStemAndFieldAndMembershipMember

public Set<GroupSet> findAllByOwnerStemAndFieldAndMembershipMember(String ownerStemId,
                                                                   String fieldId,
                                                                   Member membershipMember)
Description copied from interface: GroupSetDAO
find all group sets by owner stem id, field id, and member who is a member of that owner. this is used to analyze memberships. Note, this is not a secure method, i.e. doesnt check to see if the grouper session can ADMIN all the stems returned

Specified by:
findAllByOwnerStemAndFieldAndMembershipMember in interface GroupSetDAO
Returns:
the group sets
See Also:
GroupSetDAO.findAllByOwnerStemAndFieldAndMembershipMember(String, String, Member)

findAllByOwnerAttributeDefAndFieldAndMembershipMember

public Set<GroupSet> findAllByOwnerAttributeDefAndFieldAndMembershipMember(String ownerAttrDefId,
                                                                           String fieldId,
                                                                           Member membershipMember)
Description copied from interface: GroupSetDAO
find all group sets by owner attributeDef id, field id, and member who is a member of that owner. this is used to analyze memberships. Note, this is not a secure method, i.e. doesnt check to see if the grouper session can ADMIN all the attributeDefs returned

Specified by:
findAllByOwnerAttributeDefAndFieldAndMembershipMember in interface GroupSetDAO
Returns:
the group sets
See Also:
GroupSetDAO.findAllByOwnerAttributeDefAndFieldAndMembershipMember(String, String, Member)