Class SearchHandler

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

@PublicApi public final class SearchHandler extends Object
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.

Since:
v4.0
  • Constructor Details

    • SearchHandler

      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.
    • SearchHandler

      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.
  • Method Details