com.atlassian.jira.plugin.jql.function
Class AbstractVersionsFunction

java.lang.Object
  extended by com.atlassian.jira.plugin.jql.function.AbstractJqlFunction
      extended by com.atlassian.jira.plugin.jql.function.AbstractVersionsFunction
All Implemented Interfaces:
ClauseSanitisingJqlFunction, JqlFunction
Direct Known Subclasses:
AllReleasedVersionsFunction, AllUnreleasedVersionsFunction

public abstract class AbstractVersionsFunction
extends AbstractJqlFunction
implements ClauseSanitisingJqlFunction

An abstract class for the versions system field flag functions

Since:
v4.0

Field Summary
protected  IndexInfoResolver<Project> projectIndexInfoResolver
           
 
Constructor Summary
AbstractVersionsFunction(NameResolver<Project> projectResolver, PermissionManager permissionManager)
           
 
Method Summary
protected  IndexInfoResolver<Project> createIndexInfoResolver(NameResolver<Project> projectResolver)
           
protected abstract  Collection<Version> getAllVersions()
           
 List<QueryLiteral> getValues(User searcher, FunctionOperand operand, TerminalClause terminalClause)
          Gets the unexpanded values provided by the user on input.
protected abstract  Collection<Version> getVersionsForProject(Long projectId)
           
 FunctionOperand sanitiseOperand(User searcher, FunctionOperand operand)
          Sanitise a function operand for the specified user, so that information is not leaked.
 MessageSet validate(User searcher, 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

projectIndexInfoResolver

protected final IndexInfoResolver<Project> projectIndexInfoResolver
Constructor Detail

AbstractVersionsFunction

public AbstractVersionsFunction(NameResolver<Project> projectResolver,
                                PermissionManager permissionManager)
Method Detail

validate

public MessageSet validate(User searcher,
                           FunctionOperand operand,
                           TerminalClause terminalClause)
Description copied from interface: JqlFunction
Will validate the function operand's arguments and report back any errors.

Specified by:
validate in interface JqlFunction
Parameters:
searcher - the user performing the search
operand - 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.

getValues

public List<QueryLiteral> getValues(User searcher,
                                    FunctionOperand operand,
                                    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.

Specified by:
getValues in interface JqlFunction
Parameters:
searcher - the user performing the search
operand - 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.

sanitiseOperand

public FunctionOperand sanitiseOperand(User searcher,
                                       FunctionOperand operand)
Description copied from interface: ClauseSanitisingJqlFunction
Sanitise a function operand for the specified user, so that information is not leaked.

Specified by:
sanitiseOperand in interface ClauseSanitisingJqlFunction
Parameters:
searcher - the user performing the search
operand - the operand to sanitise; will only be sanitised if valid
Returns:
the sanitised operand; never null.

createIndexInfoResolver

protected IndexInfoResolver<Project> createIndexInfoResolver(NameResolver<Project> projectResolver)

getAllVersions

protected abstract Collection<Version> getAllVersions()
Returns:
all the versions relevant to this function.

getVersionsForProject

protected abstract Collection<Version> getVersionsForProject(Long projectId)
Parameters:
projectId - the id of the Project which the versions belong to
Returns:
all the versions relevant to this function and the specified project


Copyright © 2002-2009 Atlassian. All Rights Reserved.