public class

CascadeOptionFunction

extends AbstractJqlFunction
implements JqlFunction
java.lang.Object
   ↳ com.atlassian.jira.plugin.jql.function.AbstractJqlFunction
     ↳ com.atlassian.jira.plugin.jql.function.CascadeOptionFunction

Class Overview

A function that allows the user to select children of a specific parent option for cascading select fields.

Unlike most functions, this function requires knowledge of the field it was used with, so that it can figure out which options are valid for it to generate.

The function accepts either 1 or 2 arguments:

  • One argument (parent) - returns all option ids for the specified option's child options.
  • Two arguments (parent, child) - returns all option ids for the specified parent/child option combination.
  • Two arguments (parent, "None") - returns all option ids for the specified parent option, and the negative option ids for the children of the parents.

Summary

Constants
String EMPTY_VALUE
String FUNCTION_CASCADE_OPTION For building clauses containing this function
String QUOTED_EMPTY_VALUE
Public Constructors
CascadeOptionFunction(JqlSelectOptionsUtil jqlSelectOptionsUtil, SearchHandlerManager searchHandlerManager, CustomFieldManager customFieldManager, JqlCascadingSelectLiteralUtil jqlCascadingSelectLiteralUtil)
Public Methods
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)
Note: this method returns unconvential query literals.
MessageSet validate(ApplicationUser searcher, FunctionOperand operand, TerminalClause terminalClause)
Will validate the function operand's arguments and report back any errors.
[Expand]
Inherited Methods
From class com.atlassian.jira.plugin.jql.function.AbstractJqlFunction
From class java.lang.Object
From interface com.atlassian.jira.plugin.jql.function.JqlFunction

Constants

public static final String EMPTY_VALUE

Constant Value: "none"

public static final String FUNCTION_CASCADE_OPTION

For building clauses containing this function

Constant Value: "cascadeOption"

public static final String QUOTED_EMPTY_VALUE

Constant Value: ""none""

Public Constructors

public CascadeOptionFunction (JqlSelectOptionsUtil jqlSelectOptionsUtil, SearchHandlerManager searchHandlerManager, CustomFieldManager customFieldManager, JqlCascadingSelectLiteralUtil jqlCascadingSelectLiteralUtil)

Public Methods

public JiraDataType getDataType ()

Provides the 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 DATE then we know that we can provide values for any clauses that also specify a data type of DATE.

Returns
  • the JiraDataType that this function produces values for. Cannot be null.

public int getMinimumNumberOfExpectedArguments ()

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.

public List<QueryLiteral> getValues (QueryCreationContext queryCreationContext, FunctionOperand operand, TerminalClause terminalClause)

Note: this method returns unconvential query literals. All QueryLiterals returned will have Long values, but they may be either positive or negative. Positive values indicate that the option ids should be included in the results, whereas negative ids mean that they should be excluded.

Parameters
queryCreationContext the context of query creation
operand the operand to get values from
terminalClause the terminal clause that contains the operand
Returns
  • a list of query literals following the scheme described above; never null.

public MessageSet validate (ApplicationUser searcher, FunctionOperand operand, TerminalClause terminalClause)

Will validate the function operand's arguments and report back any errors.

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.