@InjectableComponent public class

JqlCascadingSelectLiteralUtil

extends Object
java.lang.Object
   ↳ com.atlassian.jira.jql.util.JqlCascadingSelectLiteralUtil

Summary

Public Constructors
JqlCascadingSelectLiteralUtil(JqlSelectOptionsUtil jqlSelectOptionsUtil)
Public Methods
List<QueryLiteral> createQueryLiteralsFromOptions(Operand sourceOperand, Collection<Option> positiveOptions, Collection<Option> negativeOptions)

Given a list of Options that should be in the result (positive) and a list of Options that shouldn't (negative) creates a list of QueryLiterals that represent the positive and negative options and be used for generating the query.

boolean isNegativeLiteral(QueryLiteral literal)
Determines if the QueryLiteral represents a Option that should be excluded from the result.
void processPositiveNegativeOptionLiterals(List<QueryLiteral> inputLiterals, List<QueryLiteral> positiveLiterals, List<QueryLiteral> negativeLiterals)

Processes the input literals into two groups: positive literals and negative literals.

[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public JqlCascadingSelectLiteralUtil (JqlSelectOptionsUtil jqlSelectOptionsUtil)

Public Methods

public List<QueryLiteral> createQueryLiteralsFromOptions (Operand sourceOperand, Collection<Option> positiveOptions, Collection<Option> negativeOptions)

Given a list of Options that should be in the result (positive) and a list of Options that shouldn't (negative) creates a list of QueryLiterals that represent the positive and negative options and be used for generating the query.

Parameters
sourceOperand the operand that the literals are being preduced from
positiveOptions the options that should be included
negativeOptions the options that should be excluded
Returns
  • a list of query literals representing the options to be included and excluded. All QueryLiterals will be Long values. Negative options will be represented by negative Long values. Never null.

public boolean isNegativeLiteral (QueryLiteral literal)

Determines if the QueryLiteral represents a Option that should be excluded from the result.

Parameters
literal the QueryLiteral to check is negative.
Returns
  • true if the QueryLiteral represents an Option to be excluded from the results. False otherwise.

public void processPositiveNegativeOptionLiterals (List<QueryLiteral> inputLiterals, List<QueryLiteral> positiveLiterals, List<QueryLiteral> negativeLiterals)

Processes the input literals into two groups: positive literals and negative literals.

Negative literals are those which have a negative Long value, which when inverted correctly maps to the id of an option in the system.

All other literals, including EMPTY literals, are positive literals.

If a negative literal is encountered, a new QueryLiteral with the inverse Long value is added to the list.

Parameters
inputLiterals the literals to process
positiveLiterals a list of positive literals to add to when processing
negativeLiterals a list of negative literals to add to when processing