Package com.atlassian.jira.jql.util
Class JqlCascadingSelectLiteralUtil
java.lang.Object
com.atlassian.jira.jql.util.JqlCascadingSelectLiteralUtil
Utility class for processing
QueryLiteral objects when dealing with
CascadingSelectCFType custom field classes.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateQueryLiteralsFromOptions(Operand sourceOperand, Collection<Option> positiveOptions, Collection<Option> negativeOptions) Given a list ofOptions that should be in the result (positive) and a list ofOptions that shouldn't (negative) creates a list ofQueryLiterals that represent the positive and negative options and be used for generating the query.booleanisNegativeLiteral(QueryLiteral literal) Determines if the QueryLiteral represents aOptionthat should be excluded from the result.voidprocessPositiveNegativeOptionLiterals(List<QueryLiteral> inputLiterals, List<QueryLiteral> positiveLiterals, List<QueryLiteral> negativeLiterals) Processes the input literals into two groups: positive literals and negative literals.
-
Constructor Details
-
JqlCascadingSelectLiteralUtil
-
-
Method Details
-
createQueryLiteralsFromOptions
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 ofOptions that shouldn't (negative) creates a list ofQueryLiterals that represent the positive and negative options and be used for generating the query.- Parameters:
sourceOperand- the operand that the literals are being preduced frompositiveOptions- the options that should be includednegativeOptions- 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.
-
processPositiveNegativeOptionLiterals
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
QueryLiteralwith the inverse Long value is added to the list.- Parameters:
inputLiterals- the literals to processpositiveLiterals- a list of positive literals to add to when processingnegativeLiterals- a list of negative literals to add to when processing
-
isNegativeLiteral
Determines if the QueryLiteral represents aOptionthat should be excluded from the result.- Parameters:
literal- the QueryLiteral to check is negative.- Returns:
- true if the
QueryLiteralrepresents anOptionto be excluded from the results. False otherwise.
-