Class AbstractUserBasedFunction

java.lang.Object
com.atlassian.jira.plugin.jql.function.AbstractJqlFunction
com.atlassian.jira.plugin.jql.function.AbstractUserBasedFunction
All Implemented Interfaces:
JqlFunction
Direct Known Subclasses:
ComponentsLeadByUserFunction, ProjectsLeadByUserFunction

public abstract class AbstractUserBasedFunction extends AbstractJqlFunction
This is an abstract parent to user based functions that rely on returning a list of a list of QueryLiteral based on either the current user or a user passed as a parameter.

This function expects zero or one argument. If zero arguments are supplied the current logged in user will be used.

Since:
v4.2
  • Field Details

  • Constructor Details

  • Method Details

    • validate

      @Nonnull public MessageSet validate(ApplicationUser searcher, FunctionOperand functionOperand, TerminalClause terminalClause)
      Description copied from interface: JqlFunction
      Will validate the function operand's arguments and report back any errors.
      Parameters:
      searcher - the user performing the search
      functionOperand - the operand to validate
      terminalClause - the terminal clause that contains the operand
      Returns:
      a MessageSet which will contain any validation errors or warnings or will be empty if there is nothing to report; never null.
    • isAnonymousAccessAllowed

      protected boolean isAnonymousAccessAllowed(FunctionOperand functionOperand)
    • getMessageForDisallowedAnonymousAccess

      protected MessageSet getMessageForDisallowedAnonymousAccess(I18nHelper i18n)
    • validateQuery

      protected MessageSet validateQuery(FunctionOperand functionOperand, I18nHelper i18n)
    • getMinimumNumberOfExpectedArguments

      public int getMinimumNumberOfExpectedArguments()
      Description copied from interface: JqlFunction
      This method must return the number of arguments that the function expects to perform its operation correctly. If the function can accept a variable number of arguments this value should be the lower limit. It is perfectly legal for a function to take no arguments and return 0 for this method.
      Returns:
      the number of arguments that the function expects to perform its operation correctly. Must be >=0.
    • getValues

      public List<QueryLiteral> getValues(QueryCreationContext queryCreationContext, FunctionOperand functionOperand, TerminalClause terminalClause)
      Description copied from interface: JqlFunction

      Gets the unexpanded values provided by the user on input. This is the output values that will later be transformed into index values.

      For example, a function who returns all the released versions of a specified project should return QueryLiterals representing the ids of those versions. For correctness, always opt to return the most specific identifier for the object; if you can return either the id (which is stored in the index) or a string name (that would require resolving to get the index value), choose the id.

      Parameters:
      queryCreationContext - the context of query creation
      functionOperand - the operand to get values from
      terminalClause - the terminal clause that contains the operand
      Returns:
      a List of objects that represent this Operands raw values. Cannot be null.
    • getFunctionValuesList

      protected abstract List<QueryLiteral> getFunctionValuesList(QueryCreationContext queryCreationContext, FunctionOperand operand, ApplicationUser user)
      Get the function return values based on the actual user. transformed into index values.
      Parameters:
      queryCreationContext - the context of query creation
      operand - the operand to get values from
      user - the user
      Returns:
      a List of objects that represent this Operands raw values. Cannot be null.
    • getUserNotFoundMessageKey

      protected abstract String getUserNotFoundMessageKey()
      Get the I18n message key for the error when the passed in user does not exist.
      Returns:
      message key.