Interface QueryBuilder<T>


  • @ProviderType
    public interface QueryBuilder<T>
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static class  QueryBuilder.Direction
      The sort order of the result set of a query.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      T and​(T condition1, T condition2)
      Return a condition which holds if both sub conditions hold.
      T contains​(@NotNull String relPath, @NotNull String searchExpr)
      Create a full text search condition.
      T eq​(@NotNull String relPath, @NotNull Value value)
      Create a condition which holds if the node of an Authorizable has a property at relPath which is equal to value.
      T exists​(@NotNull String relPath)
      Create a condition which holds if the node of an Authorizable has a property at relPath.
      T ge​(@NotNull String relPath, @NotNull Value value)
      Create a condition which holds if the node of an Authorizable has a property at relPath which is greater than or equal to value.
      T gt​(@NotNull String relPath, @NotNull Value value)
      Create a condition which holds if the node of an Authorizable has a property at relPath which is greater than value.
      T impersonates​(@NotNull String name)
      Create a condition which holds for Authorizables which can impersonate as name.
      T le​(@NotNull String relPath, @NotNull Value value)
      Create a condition which holds if the node of an Authorizable has a property at relPath which is smaller than or equal to value.
      T like​(@NotNull String relPath, @NotNull String pattern)
      Create a condition which holds if the node of an Authorizable has a property at relPath which matches the pattern in pattern.
      T lt​(@NotNull String relPath, @NotNull Value value)
      Create a condition which holds if the node of an Authorizable has a property at relPath which is smaller than value.
      T nameMatches​(@NotNull String pattern)
      Create a condition which holds if the name of the Authorizable matches a pattern.
      T neq​(@NotNull String relPath, @NotNull Value value)
      Create a condition which holds if the node of an Authorizable has a property at relPath which is not equal to value.
      T not​(T condition)
      Return a condition which holds if condition does not hold.
      T or​(T condition1, T condition2)
      Return a condition which holds if any of the two sub conditions hold.
      void setCondition​(T condition)
      Set the condition for the query.
      void setLimit​(long offset, long maxCount)
      Set limits for the query.
      void setLimit​(@Nullable Value bound, long maxCount)
      Set limits for the query.
      void setScope​(@NotNull String groupName, boolean declaredOnly)
      Set the scope for the query.
      void setSelector​(@NotNull Class<? extends Authorizable> selector)
      Set the selector for the query.
      void setSortOrder​(@NotNull String propertyName, @NotNull QueryBuilder.Direction direction)
      Set the sort order of the Authorizables returned by the query.
      void setSortOrder​(@NotNull String propertyName, @NotNull QueryBuilder.Direction direction, boolean ignoreCase)
      Set the sort order of the Authorizables returned by the query.
    • Method Detail

      • setSelector

        void setSelector​(@NotNull
                         @NotNull Class<? extends Authorizable> selector)
        Set the selector for the query. The selector determines whether the query returns all Authorizables or just Users respectively Groups.
        Parameters:
        selector - The selector for the query
      • setScope

        void setScope​(@NotNull
                      @NotNull String groupName,
                      boolean declaredOnly)
        Set the scope for the query. If set, the query will only return members of a specific group.
        Parameters:
        groupName - Name of the group to restrict the query to.
        declaredOnly - If true only declared members of the groups are returned. Otherwise indirect memberships are also considered.
      • setCondition

        void setCondition​(@NotNull
                          T condition)
        Set the condition for the query. The query only includes Authorizables for which this condition holds.
        Parameters:
        condition - Condition upon which Authorizables are included in the query result
      • setSortOrder

        void setSortOrder​(@NotNull
                          @NotNull String propertyName,
                          @NotNull
                          @NotNull QueryBuilder.Direction direction,
                          boolean ignoreCase)
        Set the sort order of the Authorizables returned by the query. The format of the propertyName is the same as in XPath: @propertyName sorts on a property of the current node. relative/path/@propertyName sorts on a property of a descendant node.
        Parameters:
        propertyName - The name of the property to sort on
        direction - Direction to sort. Either QueryBuilder.Direction.ASCENDING or QueryBuilder.Direction.DESCENDING
        ignoreCase - Ignore character case in sort if true. Note: For false sorting is done lexicographically even for non string properties.
      • setSortOrder

        void setSortOrder​(@NotNull
                          @NotNull String propertyName,
                          @NotNull
                          @NotNull QueryBuilder.Direction direction)
        Set the sort order of the Authorizables returned by the query. The format of the propertyName is the same as in XPath: @propertyName sorts on a property of the current node. relative/path/@propertyName sorts on a property of a descendant node. Character case is taken into account for the sort order.
        Parameters:
        propertyName - The name of the property to sort on
        direction - Direction to sort. Either QueryBuilder.Direction.ASCENDING or QueryBuilder.Direction.DESCENDING
      • setLimit

        void setLimit​(@Nullable
                      @Nullable Value bound,
                      long maxCount)
        Set limits for the query. The limits consists of a bound and a maximal number of results. The bound refers to the value of the sort order property. The query returns at most maxCount Authorizables whose values of the sort order property follow bound in the sort direction. This method has no effect if the sort order is not specified.
        Parameters:
        bound - Bound from where to start returning results. null for no bound
        maxCount - Maximal number of results to return. -1 for no limit.
      • setLimit

        void setLimit​(long offset,
                      long maxCount)
        Set limits for the query. The limits consists of an offset and a maximal number of results. offset refers to the offset within the full result set at which the returned result set should start expressed in terms of the number of Authorizables to skip. maxCount sets the maximum size of the result set expressed in terms of the number of authorizables to return.
        Parameters:
        offset - Offset from where to start returning results. 0 for no offset.
        maxCount - Maximal number of results to return. -1 for no limit.
      • nameMatches

        @NotNull
        T nameMatches​(@NotNull
                      @NotNull String pattern)
        Create a condition which holds if the name of the Authorizable matches a pattern. The percent character "%" represents any string of zero or more characters and the underscore character "_" represents any single character. Any literal use of these characters and the backslash character "\" must be escaped with a backslash character. The pattern is matched against the id and the principal.
        Parameters:
        pattern - Pattern to match the name of an authorizable.
        Returns:
        A condition
      • neq

        @NotNull
        T neq​(@NotNull
              @NotNull String relPath,
              @NotNull
              @NotNull Value value)
        Create a condition which holds if the node of an Authorizable has a property at relPath which is not equal to value. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.
        Parameters:
        relPath - Relative path from the authorizable's node to the property
        value - Value to compare the property at relPath to
        Returns:
        A condition
      • eq

        @NotNull
        T eq​(@NotNull
             @NotNull String relPath,
             @NotNull
             @NotNull Value value)
        Create a condition which holds if the node of an Authorizable has a property at relPath which is equal to value. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.
        Parameters:
        relPath - Relative path from the authorizable's node to the property
        value - Value to compare the property at relPath to
        Returns:
        A condition
      • lt

        @NotNull
        T lt​(@NotNull
             @NotNull String relPath,
             @NotNull
             @NotNull Value value)
        Create a condition which holds if the node of an Authorizable has a property at relPath which is smaller than value. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.
        Parameters:
        relPath - Relative path from the authorizable's node to the property
        value - Value to compare the property at relPath to
        Returns:
        A condition
      • le

        @NotNull
        T le​(@NotNull
             @NotNull String relPath,
             @NotNull
             @NotNull Value value)
        Create a condition which holds if the node of an Authorizable has a property at relPath which is smaller than or equal to value. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.
        Parameters:
        relPath - Relative path from the authorizable's node to the property
        value - Value to compare the property at relPath to
        Returns:
        A condition
      • gt

        @NotNull
        T gt​(@NotNull
             @NotNull String relPath,
             @NotNull
             @NotNull Value value)
        Create a condition which holds if the node of an Authorizable has a property at relPath which is greater than value. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.
        Parameters:
        relPath - Relative path from the authorizable's node to the property
        value - Value to compare the property at relPath to
        Returns:
        A condition
      • ge

        @NotNull
        T ge​(@NotNull
             @NotNull String relPath,
             @NotNull
             @NotNull Value value)
        Create a condition which holds if the node of an Authorizable has a property at relPath which is greater than or equal to value. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.
        Parameters:
        relPath - Relative path from the authorizable's node to the property
        value - Value to compare the property at relPath to
        Returns:
        A condition
      • exists

        @NotNull
        T exists​(@NotNull
                 @NotNull String relPath)
        Create a condition which holds if the node of an Authorizable has a property at relPath. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.
        Parameters:
        relPath - Relative path from the authorizable's node to the property
        Returns:
        A condition
      • like

        @NotNull
        T like​(@NotNull
               @NotNull String relPath,
               @NotNull
               @NotNull String pattern)
        Create a condition which holds if the node of an Authorizable has a property at relPath which matches the pattern in pattern. The percent character "%" represents any string of zero or more characters and the underscore character "_" represents any single character. Any literal use of these characters and the backslash character "\" must be escaped with a backslash character. The format of the relPath argument is the same as in XPath: @attributeName for an attribute on this node and relative/path/@attributeName for an attribute of a descendant node.
        Parameters:
        relPath - Relative path from the authorizable's node to the property
        pattern - Pattern to match the property at relPath against
        Returns:
        A condition
      • contains

        @NotNull
        T contains​(@NotNull
                   @NotNull String relPath,
                   @NotNull
                   @NotNull String searchExpr)
        Create a full text search condition. The condition holds if the node of an Authorizable has a property at relPath for which searchExpr yields results. The format of the relPath argument is the same as in XPath: . searches all properties of the current node, @attributeName searches the attributeName property of the current node, relative/path/. searches all properties of the descendant node at relative/path and relative/path/@attributeName searches the attributeName property of the descendant node at relative/path. The syntax of searchExpr is
        [-]value { [OR] [-]value }
        .
        Parameters:
        relPath - Relative path from the authorizable's node to the property
        searchExpr - A full text search expression
        Returns:
        A condition
      • impersonates

        @NotNull
        T impersonates​(@NotNull
                       @NotNull String name)
        Create a condition which holds for Authorizables which can impersonate as name.
        Parameters:
        name - Name of an authorizable
        Returns:
        A condition
      • not

        @NotNull
        T not​(@NotNull
              T condition)
        Return a condition which holds if condition does not hold.
        Parameters:
        condition - Condition to negate
        Returns:
        A condition
      • and

        @NotNull
        T and​(@NotNull
              T condition1,
              @NotNull
              T condition2)
        Return a condition which holds if both sub conditions hold.
        Parameters:
        condition1 - first sub condition
        condition2 - second sub condition
        Returns:
        A condition
      • or

        @NotNull
        T or​(@NotNull
             T condition1,
             @NotNull
             T condition2)
        Return a condition which holds if any of the two sub conditions hold.
        Parameters:
        condition1 - first sub condition
        condition2 - second sub condition
        Returns:
        A condition