Interface GroupDAO

All Superinterfaces:
DSpaceObjectDAO<Group>, DSpaceObjectLegacySupportDAO<Group>, GenericDAO<Group>
All Known Implementing Classes:
GroupDAOImpl

public interface GroupDAO extends DSpaceObjectDAO<Group>, DSpaceObjectLegacySupportDAO<Group>
Database Access Object interface class for the Group object. The implementation of this class is responsible for all database calls for the Group object and is autowired by spring This class should only be accessed from a single service and should never be exposed outside of the API
Author:
kevinvandevelde at atmire.com
  • Method Details

    • findByMetadataField

      List<Group> findByMetadataField(Context context, String searchValue, MetadataField metadataField) throws SQLException
      Look up groups based on their value for a certain metadata field (NOTE: name is not stored as metadata)
      Parameters:
      context - The DSpace context
      searchValue - The value to match
      metadataField - The metadata field to search in
      Returns:
      The groups that have a matching value for specified metadata field
      Throws:
      SQLException - if database error
    • findAll

      List<Group> findAll(Context context, List<MetadataField> metadataSortFields, int pageSize, int offset) throws SQLException
      Find all groups ordered by the specified metadata fields ascending
      Parameters:
      context - The DSpace context
      metadataSortFields - The metadata fields to sort on
      pageSize - how many results return
      offset - the position of the first result to return
      Returns:
      A list of all groups, ordered by metadata fields
      Throws:
      SQLException - if database error
    • findAll

      List<Group> findAll(Context context, int pageSize, int offset) throws SQLException
      Find all groups ordered by name ascending
      Parameters:
      context - The DSpace context
      pageSize - how many results return
      offset - the position of the first result to return
      Returns:
      A list of all groups, ordered by name
      Throws:
      SQLException - if database error
    • findByEPerson

      List<Group> findByEPerson(Context context, EPerson ePerson) throws SQLException
      Find all groups that the given ePerson belongs to
      Parameters:
      context - The DSpace context
      ePerson - The EPerson to match
      Returns:
      A list of all groups to which the given EPerson belongs
      Throws:
      SQLException - if database error
    • getGroup2GroupResults

      List<org.apache.commons.lang3.tuple.Pair<UUID,UUID>> getGroup2GroupResults(Context context, boolean flushQueries) throws SQLException
      Get a list of all direct parent - child group relations in the database
      Parameters:
      context - The DSpace context
      flushQueries - Flush all pending queries
      Returns:
      A list of pairs indicating parent - child
      Throws:
      SQLException - if database error
    • getEmptyGroups

      List<Group> getEmptyGroups(Context context) throws SQLException
      Return all empty groups
      Parameters:
      context - The DSpace context
      Returns:
      All empty groups
      Throws:
      SQLException - if database error
    • countRows

      int countRows(Context context) throws SQLException
      Count the number of groups in DSpace
      Parameters:
      context - The DSpace context
      Returns:
      The number of groups
      Throws:
      SQLException - if database error
    • findByName

      Group findByName(Context context, String name) throws SQLException
      Find a group by its name (exact match)
      Parameters:
      context - The DSpace context
      name - The name of the group to look for
      Returns:
      The group with the specified name
      Throws:
      SQLException - if database error
    • findByNameLike

      List<Group> findByNameLike(Context context, String groupName, int offset, int limit) throws SQLException
      Find a group by its name (fuzzy match)
      Parameters:
      context - The DSpace context
      groupName - Part of the group's name to search for
      offset - Offset to use for pagination (-1 to disable)
      limit - The maximum number of results to return (-1 to disable)
      Returns:
      Groups matching the query
      Throws:
      SQLException - if database error
    • countByNameLike

      int countByNameLike(Context context, String groupName) throws SQLException
      Count the number of groups that have a name that contains the given string
      Parameters:
      context - The DSpace context
      groupName - Part of the group's name to search for
      Returns:
      The number of matching groups
      Throws:
      SQLException - if database error
    • findByNameLikeAndNotMember

      List<Group> findByNameLikeAndNotMember(Context context, String groupName, Group excludeParent, int offset, int limit) throws SQLException
      Search all groups via their name (fuzzy match), limited to those groups which are NOT a member of the given parent group. This may be used to search across groups which are valid to add to the given parent group.

      NOTE: The parent group itself is also excluded from the search.

      Parameters:
      context - The DSpace context
      groupName - Group name to fuzzy match against.
      excludeParent - Parent Group to exclude results from. Groups under this parent will never be returned.
      offset - Offset to use for pagination (-1 to disable)
      limit - The maximum number of results to return (-1 to disable)
      Returns:
      Groups matching the query (which are not members of the given parent)
      Throws:
      SQLException - if database error
    • countByNameLikeAndNotMember

      int countByNameLikeAndNotMember(Context context, String groupName, Group excludeParent) throws SQLException
      Count number of groups that match a given name (fuzzy match), limited to those groups which are NOT a member of the given parent group. This may be used (with findByNameLikeAndNotMember()) to search across groups which are valid to add to the given parent group.

      NOTE: The parent group itself is also excluded from the count.

      Parameters:
      context - The DSpace context
      groupName - Group name to fuzzy match against.
      excludeParent - Parent Group to exclude results from. Groups under this parent will never be returned.
      Returns:
      Groups matching the query (which are not members of the given parent)
      Throws:
      SQLException - if database error
    • findByIdAndMembership

      Group findByIdAndMembership(Context context, UUID id, EPerson ePerson) throws SQLException
      Find a group by its name and the membership of the given EPerson
      Parameters:
      context - The DSpace context
      id - The id of the group to look for
      ePerson - The EPerson which has to be a member
      Returns:
      The group with the specified name
      Throws:
      SQLException - if database error
    • findByParent

      List<Group> findByParent(Context context, Group parent, int pageSize, int offset) throws SQLException
      Find all groups which are members of a given parent group. This provides the same behavior as group.getMemberGroups(), but in a paginated fashion.
      Parameters:
      context - The DSpace context
      parent - Parent Group to search within
      pageSize - how many results return
      offset - the position of the first result to return
      Returns:
      Groups matching the query
      Throws:
      SQLException - if database error
    • countByParent

      int countByParent(Context context, Group parent) throws SQLException
      Returns the number of groups which are members of a given parent group. This provides the same behavior as group.getMemberGroups().size(), but with better performance for large groups. This method may be used with findByParent() to perform pagination.
      Parameters:
      context - The DSpace context
      parent - Parent Group to search within
      Returns:
      Number of Groups matching the query
      Throws:
      SQLException - if database error