Class StemFinder

java.lang.Object
edu.internet2.middleware.grouper.StemFinder

public class StemFinder extends Object

Use this class to find stems within the registry

Sample call

 Stem stem = StemFinder.findByName(grouperSession, "test", true);
 

Sample call to find stems where an attribute def name and a value is assigned

 Set stems = new StemFinder().assignNameOfAttributeDefName(attributeDefName.getName())
        .assignPrivileges(NamingPrivilege.ATTRIBUTE_READ_PRIVILEGES).assignAttributeValue("abc").findStems();
 

  • Constructor Details

    • StemFinder

      public StemFinder()
  • Method Details

    • findByNames

      public static Set<Stem> findByNames(Collection<String> names, boolean exceptionOnNotFound)
      find by names
      Parameters:
      names -
      exceptionOnNotFound -
      Returns:
      the stems that were found
    • stemCacheClear

      public static void stemCacheClear()

      Grouper internal method only

      remove all caches
    • stemCacheRemoveById

      public static void stemCacheRemoveById(String id)

      Grouper internal method only

      remove this from all caches
      Parameters:
      id -
    • stemCacheRemove

      public static void stemCacheRemove(Stem stem)

      Grouper internal method only

      remove this from all caches
      Parameters:
      stem -
    • addUserHasInGroupField

      public StemFinder addUserHasInGroupField(Field theUserHasInGroupField)
      find stems where the user has these fields in a group
      Parameters:
      theUserHasInGroupField -
      Returns:
      this for chaining
    • addUserHasInAttributeField

      public StemFinder addUserHasInAttributeField(Field theUserHasInAttributeField)
      find stems where the user has these fields in an attribute
      Parameters:
      theUserHasInAttributeField -
      Returns:
      this for chaining
    • assignUserHasInGroupField

      public StemFinder assignUserHasInGroupField(Collection<Field> theUserHasInGroupFields)
      find stems where the user has these fields in an attribute
      Parameters:
      theUserHasInGroupFields -
      Returns:
      this for chaining
    • assignUserHasInAttributeField

      public StemFinder assignUserHasInAttributeField(Collection<Field> theUserHasInAttributeFields)
      find stems where the user has these fields in an attribute
      Parameters:
      theUserHasInAttributeFields -
      Returns:
      this for chaining
    • findByName

      @Deprecated public static Stem findByName(GrouperSession s, String name) throws StemNotFoundException
      Deprecated.
      see overload
      Find stem by name.
       try {
         Stem stem = StemFinder.findByName(s, name);
       }
       catch (StemNotFoundException e) {
         // Stem not found
       }
       
      Parameters:
      s - Search within this GrouperSession context
      name - Find stem with this name.
      Returns:
      A Stem object
      Throws:
      StemNotFoundException
    • findByName

      public static Stem findByName(GrouperSession s, String name, boolean exceptionIfNotFound) throws StemNotFoundException
      Find stem by name.
         Stem stem = StemFinder.findByName(s, name, false);
       
      Parameters:
      s - Search within this GrouperSession context
      name - Find stem with this name.
      exceptionIfNotFound -
      Returns:
      A Stem object
      Throws:
      StemNotFoundException
    • findByName

      public static Stem findByName(GrouperSession s, String name, boolean exceptionIfNotFound, QueryOptions queryOptions) throws StemNotFoundException
      Find stem by name.
         Stem stem = StemFinder.findByName(s, name, false);
       
      Parameters:
      s - Search within this GrouperSession context
      name - Find stem with this name.
      exceptionIfNotFound -
      queryOptions -
      Returns:
      A Stem object
      Throws:
      StemNotFoundException
    • findByAlternateName

      public static Stem findByAlternateName(GrouperSession s, String name, boolean exceptionIfNotFound, QueryOptions queryOptions) throws StemNotFoundException
      Find stem by its alternate name.
         Stem stem = StemFinder.findByAlternateName(s, name, false);
       
      Parameters:
      s - Search within this GrouperSession context
      name - Find stem with this alternate name.
      exceptionIfNotFound -
      queryOptions -
      Returns:
      A Stem object
      Throws:
      StemNotFoundException
    • findByCurrentName

      public static Stem findByCurrentName(GrouperSession s, String name, boolean exceptionIfNotFound, QueryOptions queryOptions) throws StemNotFoundException
      Find stem by its current name.
         Stem stem = StemFinder.findByCurrentName(s, name, false);
       
      Parameters:
      s - Search within this GrouperSession context
      name - Find stem with this name.
      exceptionIfNotFound -
      queryOptions -
      Returns:
      A Stem object
      Throws:
      StemNotFoundException
    • findRootStem

      public static Stem findRootStem(GrouperSession s) throws StemNotFoundException
      Find root stem of the Groups Registry.
       // Find the root stem.
       Stem rootStem = StemFinder.findRootStem(s);
       
      Parameters:
      s - Search within this GrouperSession context
      Returns:
      A Stem object
      Throws:
      GrouperException
      StemNotFoundException
    • findByUuid

      @Deprecated public static Stem findByUuid(GrouperSession s, String uuid) throws StemNotFoundException
      Deprecated.
      see overload
      Get stem by uuid.
       // Get the specified stem by uuid.
       try {
         Stem stem = StemFinder.findByUuid(s, uuid);
       }
       catch (StemNotFoundException e) {
         // Stem not found
       }
       
      Parameters:
      s - Search within this GrouperSession context
      uuid - Get stem with this UUID.
      Returns:
      A Stem object
      Throws:
      StemNotFoundException
    • findByUuid

      public static Stem findByUuid(GrouperSession s, String uuid, boolean exceptionIfNotFound) throws StemNotFoundException
      Get stem by uuid.
       // Get the specified stem by uuid.
       try {
         Stem stem = StemFinder.findByUuid(s, uuid);
       }
       catch (StemNotFoundException e) {
         // Stem not found
       }
       
      Parameters:
      s - Search within this GrouperSession context
      uuid - Get stem with this UUID.
      exceptionIfNotFound -
      Returns:
      A Stem object
      Throws:
      StemNotFoundException
    • findByUuid

      public static Stem findByUuid(GrouperSession s, String uuid, boolean exceptionIfNotFound, QueryOptions queryOptions) throws StemNotFoundException
      Get stem by uuid.
       // Get the specified stem by uuid.
       try {
         Stem stem = StemFinder.findByUuid(s, uuid);
       }
       catch (StemNotFoundException e) {
         // Stem not found
       }
       
      Parameters:
      s - Search within this GrouperSession context
      uuid - Get stem with this UUID.
      exceptionIfNotFound -
      queryOptions -
      Returns:
      A Stem object
      Throws:
      StemNotFoundException
    • findByUuids

      public static Set<Stem> findByUuids(GrouperSession s, Collection<String> uuids, QueryOptions queryOptions) throws StemNotFoundException
      Get stems by uuids.
       // Get the specified stems by uuids.
       try {
         Set stems = StemFinder.findByUuids(s, uuids, null);
       }
       catch (StemNotFoundException e) {
         // Stem not found
       }
       
      Parameters:
      s - Search within this GrouperSession context
      uuids - Get stem with this UUID.
      queryOptions -
      Returns:
      A Stem object
      Throws:
      StemNotFoundException
    • internal_findAllByApproximateDisplayExtension

      public static Set internal_findAllByApproximateDisplayExtension(GrouperSession s, String val) throws QueryException

      Grouper internal method only

      Parameters:
      s -
      val -
      Returns:
      Throws:
      QueryException
      Since:
      1.2.0
    • internal_findAllByApproximateDisplayName

      public static Set internal_findAllByApproximateDisplayName(GrouperSession s, String val) throws QueryException

      Grouper internal method only

      Parameters:
      s -
      val -
      Returns:
      Throws:
      QueryException
      Since:
      1.2.0
    • internal_findAllByApproximateExtension

      public static Set internal_findAllByApproximateExtension(GrouperSession s, String val) throws QueryException

      Grouper internal method only

      Parameters:
      s -
      val -
      Returns:
      Throws:
      QueryException
      Since:
      1.2.0
    • internal_findAllByApproximateName

      public static Set internal_findAllByApproximateName(GrouperSession s, String val) throws QueryException

      Grouper internal method only

      Parameters:
      s -
      val -
      Returns:
      Throws:
      QueryException
      Since:
      1.2.0
    • internal_findAllByApproximateNameAny

      public static Set internal_findAllByApproximateNameAny(GrouperSession s, String val) throws QueryException

      Grouper internal method only

      Parameters:
      s -
      val -
      Returns:
      Throws:
      QueryException
      Since:
      1.2.0
    • internal_findAllByCreatedAfter

      public static Set internal_findAllByCreatedAfter(GrouperSession s, Date d) throws QueryException

      Grouper internal method only

      Parameters:
      s -
      d -
      Returns:
      Throws:
      QueryException
      Since:
      1.2.0
    • internal_findAllByCreatedBefore

      public static Set internal_findAllByCreatedBefore(GrouperSession s, Date d) throws QueryException

      Grouper internal method only

      Parameters:
      s -
      d -
      Returns:
      Throws:
      QueryException
      Since:
      1.2.0
    • internal_findByName

      public static Stem internal_findByName(String name, boolean exceptionIfNotFound) throws StemNotFoundException

      Grouper internal method only

      Parameters:
      name -
      exceptionIfNotFound -
      Returns:
      the stem
      Throws:
      StemNotFoundException
    • findByIdIndex

      public static Stem findByIdIndex(Long idIndex, boolean exceptionIfNotFound, QueryOptions queryOptions) throws StemNotFoundException
      Find a stem within the registry by ID index.
      Parameters:
      idIndex - id index of stem to find.
      exceptionIfNotFound - true if exception if not found
      queryOptions -
      Returns:
      A Stem
      Throws:
      StemNotFoundException - if not found an exceptionIfNotFound is true
    • assignFindByUuidOrName

      public StemFinder assignFindByUuidOrName(boolean theFindByUuidOrName)
      if we are looking up a stem, only look by uuid or name
      Parameters:
      theFindByUuidOrName -
      Returns:
      the stem finder
    • assignAttributeNotAssigned

      public StemFinder assignAttributeNotAssigned(boolean attributeNotAssigned)
      find stems that don't have a certain type assigned
      Parameters:
      attributeNotAssigned -
      Returns:
    • assignExcludeAlternateNames

      public StemFinder assignExcludeAlternateNames(boolean excludeAlternateNames)
      whether to exclude alternate names from name/scope search
      Parameters:
      excludeAlternateNames -
      Returns:
    • assignAttributeCheckReadOnAttributeDef

      public StemFinder assignAttributeCheckReadOnAttributeDef(boolean theAttributeCheckReadOnAttributeDef)
      check read on attribute def when checking attribute def name
      Parameters:
      theAttributeCheckReadOnAttributeDef -
      Returns:
      this for chaining
    • assignAttributeValue

      public StemFinder assignAttributeValue(Object theValue)
      find objects with this value
      Parameters:
      theValue -
      Returns:
      this for chaining
    • addPrivilege

      public StemFinder addPrivilege(Privilege privilege)
      add a privilege to filter by that the subject has on the stem
      Parameters:
      privilege - should be AccessPrivilege
      Returns:
      this for chaining
    • assignPrivileges

      public StemFinder assignPrivileges(Set<Privilege> theStems)
      assign privileges to filter by that the subject has on the stem
      Parameters:
      theStems -
      Returns:
      this for chaining
    • assignQueryOptions

      public StemFinder assignQueryOptions(QueryOptions theQueryOptions)
      if sorting, paging, caching, etc
      Parameters:
      theQueryOptions -
      Returns:
      this for chaining
    • assignScope

      public StemFinder assignScope(String theScope)
      scope to look for stems Wildcards will be appended or percent is the wildcard
      Parameters:
      theScope -
      Returns:
      this for chaining
    • assignSplitScope

      public StemFinder assignSplitScope(boolean theSplitScope)
      if the scope has spaces in it, then split by whitespace, and find results that contain all of the scope strings
      Parameters:
      theSplitScope -
      Returns:
      this for chaining
    • assignSubject

      public StemFinder assignSubject(Subject theSubject)
      this is the subject that has certain privileges or is in the query
      Parameters:
      theSubject -
      Returns:
      this for chaining
    • findStem

      public Stem findStem()
      find the stem
      Returns:
      the stem or null
    • findStems

      public Set<Stem> findStems()
      find all the stems
      Returns:
      the set of stems or the empty set if none found
    • assignParentStemId

      public StemFinder assignParentStemId(String theParentStemId)
      parent or ancestor stem of the stem
      Parameters:
      theParentStemId -
      Returns:
      this for chaining
    • assignStemScope

      public StemFinder assignStemScope(Stem.Scope theStemScope)
      if passing in a stem, this is the stem scope...
      Parameters:
      theStemScope -
      Returns:
      this for chaining
    • addStemId

      public StemFinder addStemId(String stemId)
      add a stem id to search for
      Parameters:
      stemId -
      Returns:
      this for chaining
    • assignStemIds

      public StemFinder assignStemIds(Collection<String> theStemIds)
      assign stem ids to search for
      Parameters:
      theStemIds -
      Returns:
      this for chaining
    • addStemName

      public StemFinder addStemName(String stemName)
      Parameters:
      stemName -
      Returns:
      this for chaining
    • assignStemNames

      public StemFinder assignStemNames(Collection<String> theStemNames)
    • addAttributeValuesOnAssignment

      public StemFinder addAttributeValuesOnAssignment(Object value)
      if looking for an attribute value on an assignment, could be multiple values
      Parameters:
      value -
      Returns:
      this for chaining
    • addAttributeValuesOnAssignment2

      public StemFinder addAttributeValuesOnAssignment2(Object value)
      if looking for an attribute value on an assignment2, could be multiple values
      Parameters:
      value -
      Returns:
      this for chaining
    • assignAttributeValuesOnAssignment

      public StemFinder assignAttributeValuesOnAssignment(Set<Object> theValues)
      if looking for an attribute value on an assignment, could be multiple values
      Parameters:
      theValues -
      Returns:
      this for chaining
    • assignAttributeValuesOnAssignment2

      public StemFinder assignAttributeValuesOnAssignment2(Set<Object> theValues)
      if looking for an attribute value on an assignment2, could be multiple values
      Parameters:
      theValues -
      Returns:
      this for chaining
    • assignIdOfAttributeDefName

      public StemFinder assignIdOfAttributeDefName(String theAttributeDefNameId)
      find stems that have this attribute def name id, note could be an assignment on an assignment
      Parameters:
      theAttributeDefNameId -
      Returns:
      this for chaining
    • assignIdOfAttributeDefName2

      public StemFinder assignIdOfAttributeDefName2(String theAttributeDefNameId)
      find stems that have this attribute def name id, note could be an assignment on an assignment
      Parameters:
      theAttributeDefNameId -
      Returns:
      this for chaining
    • assignNameOfAttributeDefName

      public StemFinder assignNameOfAttributeDefName(String theNameOfAttributeDefName)
      find stems that have this attribute assigned
      Parameters:
      theNameOfAttributeDefName -
      Returns:
      this for chaining
    • assignNameOfAttributeDefName2

      public StemFinder assignNameOfAttributeDefName2(String theNameOfAttributeDefName)
      find stems that have this attribute assigned
      Parameters:
      theNameOfAttributeDefName -
      Returns:
      this for chaining
    • findByName

      public static Stem findByName(String name, boolean exceptionIfNotFound) throws StemNotFoundException
      Find stem by name.
         Stem stem = StemFinder.findByName(s, name, false);
       
      Parameters:
      s - Search within this GrouperSession context
      name - Find stem with this name.
      exceptionIfNotFound -
      Returns:
      A Stem object
      Throws:
      StemNotFoundException
    • findByName

      public static Stem findByName(String name, boolean exceptionIfNotFound, QueryOptions queryOptions) throws StemNotFoundException
      Find stem by name.
         Stem stem = StemFinder.findByName(s, name, false);
       
      Parameters:
      s - Search within this GrouperSession context
      name - Find stem with this name.
      exceptionIfNotFound -
      queryOptions -
      Returns:
      A Stem object
      Throws:
      StemNotFoundException
    • findIdIndexesByNames

      public static Map<String,Long> findIdIndexesByNames(Set<String> stemNames2)
      this will cache for a minute, find id index by name
      Parameters:
      stemNames2 -
      Returns:
      the id indexes