Class AbstractVersionsFunction
java.lang.Object
com.atlassian.jira.plugin.jql.function.AbstractJqlFunction
com.atlassian.jira.plugin.jql.function.AbstractVersionsFunction
- All Implemented Interfaces:
ClauseSanitisingJqlFunction,JqlFunction
- Direct Known Subclasses:
AllReleasedVersionsFunction,AllUnreleasedVersionsFunction,EarliestUnreleasedVersionFunction,LatestReleasedVersionFunction
public abstract class AbstractVersionsFunction
extends AbstractJqlFunction
implements ClauseSanitisingJqlFunction
An abstract class for the versions system field flag functions
- Since:
- v4.0
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final PermissionManagerprotected final IndexInfoResolver<Project> -
Constructor Summary
ConstructorsConstructorDescriptionAbstractVersionsFunction(NameResolver<Project> projectResolver, PermissionManager permissionManager) -
Method Summary
Modifier and TypeMethodDescriptionprotected IndexInfoResolver<Project>createIndexInfoResolver(NameResolver<Project> projectResolver) protected abstract Collection<Version>Provides theJiraDataTypethat this function handles and creates values for.intThis method must return the number of arguments that the function expects to perform its operation correctly.getValues(QueryCreationContext queryCreationContext, FunctionOperand operand, TerminalClause terminalClause) Gets the unexpanded values provided by the user on input.protected abstract Collection<Version>getVersionsForProject(Long projectId) sanitiseOperand(ApplicationUser searcher, FunctionOperand operand) Sanitise a function operand for the specified user, so that information is not leaked.validate(ApplicationUser searcherUser, FunctionOperand operand, TerminalClause terminalClause) Will validate the function operand's arguments and report back any errors.Methods inherited from class com.atlassian.jira.plugin.jql.function.AbstractJqlFunction
getFunctionName, getI18n, getModuleDescriptor, init, isList, validateNumberOfArgs
-
Field Details
-
projectIndexInfoResolver
-
permissionManager
-
-
Constructor Details
-
AbstractVersionsFunction
public AbstractVersionsFunction(NameResolver<Project> projectResolver, PermissionManager permissionManager)
-
-
Method Details
-
validate
public MessageSet validate(ApplicationUser searcherUser, FunctionOperand operand, TerminalClause terminalClause) Description copied from interface:JqlFunctionWill validate the function operand's arguments and report back any errors.- Specified by:
validatein interfaceJqlFunction- Parameters:
searcherUser- the user performing the searchoperand- 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.
-
getValues
@Nonnull public List<QueryLiteral> getValues(QueryCreationContext queryCreationContext, FunctionOperand operand, TerminalClause terminalClause) Description copied from interface:JqlFunctionGets 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.- Specified by:
getValuesin interfaceJqlFunction- Parameters:
queryCreationContext- the context of query creationoperand- 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.
-
sanitiseOperand
Description copied from interface:ClauseSanitisingJqlFunctionSanitise a function operand for the specified user, so that information is not leaked.- Specified by:
sanitiseOperandin interfaceClauseSanitisingJqlFunction- Parameters:
searcher- the user performing the searchoperand- the operand to sanitise; will only be sanitised if valid- Returns:
- the sanitised operand; never null.
-
getMinimumNumberOfExpectedArguments
public int getMinimumNumberOfExpectedArguments()Description copied from interface:JqlFunctionThis 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.- Specified by:
getMinimumNumberOfExpectedArgumentsin interfaceJqlFunction- Returns:
- the number of arguments that the function expects to perform its operation correctly. Must be >=0.
-
getDataType
Description copied from interface:JqlFunctionProvides theJiraDataTypethat this function handles and creates values for. This allows us to infer some information about how it will interact with other elements in the system.For example, if this returns
JiraDataTypes.DATEthen we know that we can provide values for any clauses that also specify a data type of DATE.- Specified by:
getDataTypein interfaceJqlFunction- Returns:
- the JiraDataType that this function produces values for. Cannot be null.
- See Also:
-
createIndexInfoResolver
-
getAllVersions
- Returns:
- all the versions relevant to this function.
-
getVersionsForProject
- Parameters:
projectId- the id of theProjectwhich the versions belong to- Returns:
- all the versions relevant to this function and the specified project
-