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

java.lang.Object
  extended by com.atlassian.jira.plugin.jql.function.AbstractJqlFunction
      extended by com.atlassian.jira.plugin.jql.function.CascadeOptionFunction
All Implemented Interfaces:
JqlFunction

public class CascadeOptionFunction
extends AbstractJqlFunction
implements JqlFunction

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:

Since:
v4.0

Field Summary
static String EMPTY_VALUE
           
static String FUNCTION_CASCADE_OPTION
          For building clauses containing this function
static String QUOTED_EMPTY_VALUE
           
 
Constructor Summary
CascadeOptionFunction(JqlSelectOptionsUtil jqlSelectOptionsUtil, SearchHandlerManager searchHandlerManager, CustomFieldManager customFieldManager, JqlCascadingSelectLiteralUtil jqlCascadingSelectLiteralUtil)
           
 
Method Summary
 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(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
 
Methods inherited from interface com.atlassian.jira.plugin.jql.function.JqlFunction
getFunctionName, init, isList
 

Field Detail

FUNCTION_CASCADE_OPTION

public static final String FUNCTION_CASCADE_OPTION
For building clauses containing this function

See Also:
Constant Field Values

EMPTY_VALUE

public static String EMPTY_VALUE

QUOTED_EMPTY_VALUE

public static String QUOTED_EMPTY_VALUE
Constructor Detail

CascadeOptionFunction

public CascadeOptionFunction(JqlSelectOptionsUtil jqlSelectOptionsUtil,
                             SearchHandlerManager searchHandlerManager,
                             CustomFieldManager customFieldManager,
                             JqlCascadingSelectLiteralUtil jqlCascadingSelectLiteralUtil)
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(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.

Specified by:
getValues in interface JqlFunction
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.

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.

Specified by:
getMinimumNumberOfExpectedArguments in interface JqlFunction
Returns:
the number of arguments that the function expects to perform its operation correctly.

getDataType

public JiraDataType getDataType()
Description copied from interface: JqlFunction
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 JiraDataTypes.DATE then we know that we can provide values for any clauses that also specify a data type of DATE.

Specified by:
getDataType in interface JqlFunction
Returns:
the JiraDataType that this function produces values for.
See Also:
JiraDataTypes


Copyright © 2002-2009 Atlassian. All Rights Reserved.