public abstract class AbstractVersionsFunction extends AbstractJqlFunction implements ClauseSanitisingJqlFunction
Modifier and Type | Field and Description |
---|---|
protected PermissionManager |
permissionManager |
protected IndexInfoResolver<Project> |
projectIndexInfoResolver |
Constructor and Description |
---|
AbstractVersionsFunction(NameResolver<Project> projectResolver,
PermissionManager permissionManager) |
Modifier and Type | Method and Description |
---|---|
protected IndexInfoResolver<Project> |
createIndexInfoResolver(NameResolver<Project> projectResolver) |
protected abstract Collection<Version> |
getAllVersions(ApplicationUser user) |
JiraDataType |
getDataType()
Provides the
JiraDataType that this function handles and creates values for. |
int |
getMinimumNumberOfExpectedArguments()
This method must return the number of arguments that the function expects to perform its operation correctly.
|
List<QueryLiteral> |
getValues(QueryCreationContext queryCreationContext,
FunctionOperand operand,
TerminalClause terminalClause)
Gets the unexpanded values provided by the user on input.
|
protected abstract Collection<Version> |
getVersionsForProject(Long projectId) |
FunctionOperand |
sanitiseOperand(ApplicationUser searcher,
FunctionOperand operand)
Sanitise a function operand for the specified user, so that information is not leaked.
|
MessageSet |
validate(ApplicationUser searcherUser,
FunctionOperand operand,
TerminalClause terminalClause)
Will validate the function operand's arguments and report back any errors.
|
getFunctionName, getI18n, getModuleDescriptor, init, isList, validateNumberOfArgs
protected final IndexInfoResolver<Project> projectIndexInfoResolver
protected final PermissionManager permissionManager
public AbstractVersionsFunction(NameResolver<Project> projectResolver, PermissionManager permissionManager)
public MessageSet validate(ApplicationUser searcherUser, FunctionOperand operand, TerminalClause terminalClause)
JqlFunction
validate
in interface JqlFunction
searcherUser
- the user performing the searchoperand
- the operand to validateterminalClause
- the terminal clause that contains the operand@Nonnull public List<QueryLiteral> getValues(QueryCreationContext queryCreationContext, FunctionOperand operand, TerminalClause terminalClause)
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.
getValues
in interface JqlFunction
queryCreationContext
- the context of query creationoperand
- the operand to get values fromterminalClause
- the terminal clause that contains the operandpublic FunctionOperand sanitiseOperand(ApplicationUser searcher, FunctionOperand operand)
ClauseSanitisingJqlFunction
sanitiseOperand
in interface ClauseSanitisingJqlFunction
searcher
- the user performing the searchoperand
- the operand to sanitise; will only be sanitised if validpublic int getMinimumNumberOfExpectedArguments()
JqlFunction
getMinimumNumberOfExpectedArguments
in interface JqlFunction
public JiraDataType getDataType()
JqlFunction
JiraDataType
that 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.DATE
then we know that we can provide
values for any clauses that also specify a data type of DATE.
getDataType
in interface JqlFunction
JiraDataTypes
protected IndexInfoResolver<Project> createIndexInfoResolver(NameResolver<Project> projectResolver)
protected abstract Collection<Version> getAllVersions(ApplicationUser user)
protected abstract Collection<Version> getVersionsForProject(Long projectId)
projectId
- the id of the Project
which the versions belong toCopyright © 2002-2017 Atlassian. All Rights Reserved.