public abstract class WorklogClauseQueryFactory extends Object implements ClauseQueryFactory
The implementation of method ClauseQueryFactory.getQuery(com.atlassian.jira.jql.query.QueryCreationContext, com.atlassian.query.clause.TerminalClause)
works in the standard way, i.e. it returns a query against the issue index, so you can use this class as any other ClauseQueryFactory
.
One additional method is present, though. It is useful if you want to query worklog index directly and then process the results on your own.
Modifier and Type | Method and Description |
---|---|
QueryFactoryResult |
getQuery(QueryCreationContext queryCreationContext,
TerminalClause terminalClause)
Generates a lucene query for the passed
TerminalClause . |
abstract org.apache.lucene.search.Query |
getWorklogQuery(QueryCreationContext queryCreationContext,
TerminalClause terminalClause)
Returns a lucene query that can be run against the worklog index.
|
@Nonnull public final QueryFactoryResult getQuery(@Nonnull QueryCreationContext queryCreationContext, @Nonnull TerminalClause terminalClause)
ClauseQueryFactory
TerminalClause
. It is the responsibility of the factory
to look at the Operator and Operand in the TerminalClause and generate a Lucene search for it. This method
is only called after JIRA works out that the TerminalClause is relevant to this ClauseQueryFactory.
A ClauseFactory needs to be careful when implementing the NOT_LIKE, NOT_EQUALS or NOT_IN operators. These negative operators should not match what is considered EMPTY. For example, the query "resolution is EMPTY" will return all unresolved issues in JIRA. The query "resolution != fixed" will only return all resolved issues that have not been resolved as "fixed", that is, it will not return any unresolved issues. The user would have to enter the query "resolution != fixed or resolution is EMPTY" to find all issues that are either unresolved or not resolved as "fixed".
The ClauseQueryFactory must handle the situation when an invalid TerminalClause is passed. The ClauseQueryFactory must return an empty Lucene Search if the passed TerminalClause is invalid. Most importantly, ClauseQueryFactory may not throw an exception on the input of an invalid TerminalClause.
getQuery
in interface ClauseQueryFactory
queryCreationContext
- the context of the query creation call; used to indicate that permissions should be
ignored for "admin queries"terminalClause
- the clause for which this factory is generating a query.public abstract org.apache.lucene.search.Query getWorklogQuery(QueryCreationContext queryCreationContext, TerminalClause terminalClause)
queryCreationContext
- query contextterminalClause
- clause to transform into queryCopyright © 2002-2022 Atlassian. All Rights Reserved.