@PublicApi public final class

SearchHandler

extends Object
java.lang.Object
   ↳ com.atlassian.jira.issue.search.SearchHandler

@PublicApi

This class is designed for plugins to consume (call its methods).

Clients of @PublicApi can expect that programs compiled against a given version will remain binary compatible with later versions of the @PublicApi as per each product's API policy as long as the client does not implement/extend @PublicApi interfaces or classes (refer to each product's API policy for the exact guarantee---usually binary compatibility is guaranteed at least across minor versions).

Note: since @PublicApi interfaces and classes are not designed to be implemented or extended by clients, we may perform certain types of binary-incompatible changes to these classes and interfaces, but these will not affect well-behaved clients that do not extend/implement these types (in general, only classes and interfaces annotated with @PublicSpi are safe to extend/implement).

Class Overview

Object used by the field to indicate how it can be searched and indexed.

The field controls how JIRA indexes an issue by specifying a list of FieldIndexers.

Each JQL clause in JIRA is represented by a SearchHandler.ClauseRegistration. It consists of a set of JQL names and the ClauseHandler that can be used to process those JQL names in a query.

Each field *may* have one IssueSearcher that uses a list of JQL clauses to create a JQL search. This is specified in the SearchHandler.SearcherRegistration on the SearchHandler. JIRA will keep the association between the IssueSearcher and JQL clauses (ClasuseHandler) to perform the mapping from JQL to the GUI version of Issue Navigator. Listing ClauseHandlers in the SearcherRegistration that are not related to the IssueSearcher may result JIRA falsely determining that a JQL query cannot be represented on the navigator GUI. Note that the JQL clauses listed in the SearcherRegistration will also be available directly in JQL.

The field may also have another set of JQL clauses that can be used against the field but are not associated with any IssueSearcher. The clauses are held in the list of ClauseRegistrations on the ClauseHandler itself. These JQL clauses cannot be represented on navigtor as they have no IssueSearcher.

The same ClauseHandler should not be listed in both the SearcherRegistration and the SearchHandler directly. Doing so could result in doing JIRA performing the same search twice.

Summary

Nested Classes
class SearchHandler.ClauseRegistration Represents a JQL clause and how to process it. 
class SearchHandler.SearcherRegistration Holds the link between an IssueSearcher and the JQL clauses (as SearchHandler.ClauseRegistrations) that it uses in the background to implement searching. 
Public Constructors
SearchHandler(List<FieldIndexer> fieldIndexers, SearchHandler.SearcherRegistration searcherRegistration, List<SearchHandler.ClauseRegistration> clauseRegistrations)
Create a new handler.
SearchHandler(List<FieldIndexer> fieldIndexers, SearchHandler.SearcherRegistration searcherRegistration)
Create a new handler with the passed FieldIndexers and SearchHandler.SearcherRegistration.
Public Methods
boolean equals(Object o)
List<SearchHandler.ClauseRegistration> getClauseRegistrations()
The list of JQL clauses provided for searching.
List<FieldIndexer> getIndexers()
The list of indexers that will JIRA will use to index the field.
SearchHandler.SearcherRegistration getSearcherRegistration()
The SearchHandler.SearcherRegistration provided for searching.
int hashCode()
String toString()
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public SearchHandler (List<FieldIndexer> fieldIndexers, SearchHandler.SearcherRegistration searcherRegistration, List<SearchHandler.ClauseRegistration> clauseRegistrations)

Create a new handler.

Parameters
fieldIndexers the indexers to associate with the handler. May not be null.
searcherRegistration the registration to associate with the handler. May be null.
clauseRegistrations the JQL clauses to associate with the chanler. May not be null.

public SearchHandler (List<FieldIndexer> fieldIndexers, SearchHandler.SearcherRegistration searcherRegistration)

Create a new handler with the passed FieldIndexers and SearchHandler.SearcherRegistration. Same as calling this(fieldIndexers, searcherRegistration,Collections.<ClauseRegistration>emptyList());

Parameters
fieldIndexers the indexers to associate with the handler.
searcherRegistration the searcher (and its associated clauses) to associate with the handler. May be null.

Public Methods

public boolean equals (Object o)

public List<SearchHandler.ClauseRegistration> getClauseRegistrations ()

The list of JQL clauses provided for searching. These JQL clauses are not associated with any IssueSearcher and as such cannot be represented on the GUI version of the Issue Navigator.

Returns
  • the list of JQL clauses provided for searching. Cannot be null.

public List<FieldIndexer> getIndexers ()

The list of indexers that will JIRA will use to index the field.

Returns
  • the list of indexers that will process this field.

public SearchHandler.SearcherRegistration getSearcherRegistration ()

The SearchHandler.SearcherRegistration provided for searching.

Returns

public int hashCode ()

public String toString ()