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
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 Summary
Modifier and TypeFieldDescriptionprotected final GlobalPermissionManager
protected final UserManager
-
Constructor Summary
ConstructorDescriptionAbstractUserBasedFunction
(UserManager userManager, GlobalPermissionManager globalPermissionManager) -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract List<QueryLiteral>
getFunctionValuesList
(QueryCreationContext queryCreationContext, FunctionOperand operand, ApplicationUser user) Get the function return values based on the actual user.protected MessageSet
int
This method must return the number of arguments that the function expects to perform its operation correctly.protected abstract String
Get the I18n message key for the error when the passed in user does not exist.getValues
(QueryCreationContext queryCreationContext, FunctionOperand functionOperand, TerminalClause terminalClause) Gets the unexpanded values provided by the user on input.protected boolean
isAnonymousAccessAllowed
(FunctionOperand functionOperand) validate
(ApplicationUser searcher, FunctionOperand functionOperand, TerminalClause terminalClause) Will validate the function operand's arguments and report back any errors.protected MessageSet
validateQuery
(FunctionOperand functionOperand, I18nHelper i18n) Methods inherited from class com.atlassian.jira.plugin.jql.function.AbstractJqlFunction
getFunctionName, getI18n, getModuleDescriptor, init, isList, validateNumberOfArgs
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.atlassian.jira.plugin.jql.function.JqlFunction
getDataType
-
Field Details
-
userManager
-
globalPermissionManager
-
-
Constructor Details
-
AbstractUserBasedFunction
public AbstractUserBasedFunction(UserManager userManager, GlobalPermissionManager globalPermissionManager)
-
-
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 searchfunctionOperand
- the operand to validateterminalClause
- 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
-
getMessageForDisallowedAnonymousAccess
-
validateQuery
-
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
QueryLiteral
s 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 creationfunctionOperand
- the operand to get values fromterminalClause
- 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 creationoperand
- the operand to get values fromuser
- the user- Returns:
- a List of objects that represent this Operands raw values. Cannot be null.
-
getUserNotFoundMessageKey
Get the I18n message key for the error when the passed in user does not exist.- Returns:
- message key.
-