Package org.apache.lucene.queryparser.flexible.core

# Class QueryParserHelper

java.lang.Object
org.apache.lucene.queryparser.flexible.core.QueryParserHelper

Direct Known Subclasses:
  `StandardQueryParser`

public class QueryParserHelper extends Object
This class is a helper for the query parser framework, it does all the three query parser phrases at once: text parsing, query processing and query building.

It contains methods that allows the user to change the implementation used on the three phases.

See Also:
  - `QueryNodeProcessor`
  - `SyntaxParser`
  - `QueryBuilder`
  - `QueryConfigHandler`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `QueryParserHelper(QueryConfigHandler queryConfigHandler, SyntaxParser syntaxParser, QueryNodeProcessor processor, QueryBuilder builder)`
  Creates a query parser helper object using the specified configuration, text parser, processor and builder.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `QueryBuilder`
  `getQueryBuilder()`
  Returns the query builder used to build a object from the query node tree.
  `QueryConfigHandler`
  `getQueryConfigHandler()`
  Returns the query configuration handler, which is used during the query node tree processing.
  `QueryNodeProcessor`
  `getQueryNodeProcessor()`
  Returns the processor object used to process the query node tree, it returns `null` if no processor is used.
  `SyntaxParser`
  `getSyntaxParser()`
  Returns the text parser used to build a query node tree from a query string.
  `Object`
  `parse(String query, String defaultField)`
  Parses a query string to an object, usually some query object.
  In this method the three phases are executed:
  1st - the query string is parsed using the text parser returned by `getSyntaxParser()`, the result is a query node tree
  2nd - the query node tree is processed by the processor returned by `getQueryNodeProcessor()`
  3th - a object is built from the query node tree using the builder returned by `getQueryBuilder()`
  `void`
  `setQueryBuilder(QueryBuilder queryBuilder)`
  The query builder that will be used to build an object from the query node tree.
  `void`
  `setQueryConfigHandler(QueryConfigHandler config)`
  Sets the query configuration handler that will be used during query processing.
  `void`
  `setQueryNodeProcessor(QueryNodeProcessor processor)`
  Sets the processor that will be used to process the query node tree.
  `void`
  `setSyntaxParser(SyntaxParser syntaxParser)`
  Sets the text parser that will be used to parse the query string, it cannot be `null` .

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### QueryParserHelper

    public QueryParserHelper(QueryConfigHandler queryConfigHandler, SyntaxParser syntaxParser, QueryNodeProcessor processor, QueryBuilder builder)
    Creates a query parser helper object using the specified configuration, text parser, processor and builder.
    Parameters:
      `queryConfigHandler` - the query configuration handler that will be initially set to this helper
      `syntaxParser` - the text parser that will be initially set to this helper
      `processor` - the query processor that will be initially set to this helper
      `builder` - the query builder that will be initially set to this helper
    See Also:
      - `QueryNodeProcessor`
      - `SyntaxParser`
      - `QueryBuilder`
      - `QueryConfigHandler`

- ## Method Details

  - ### getQueryNodeProcessor

    public QueryNodeProcessor getQueryNodeProcessor()
    Returns the processor object used to process the query node tree, it returns `null` if no processor is used.
    Returns:
      the actual processor used to process the query node tree, `null` if no processor is used
    See Also:
      - `QueryNodeProcessor`
      - `setQueryNodeProcessor(QueryNodeProcessor)`

  - ### setQueryNodeProcessor

    public void setQueryNodeProcessor(QueryNodeProcessor processor)
    Sets the processor that will be used to process the query node tree. If there is any `QueryConfigHandler` returned by `getQueryConfigHandler()`, it will be set on the processor. The argument can be `null`, which means that no processor will be used to process the query node tree.
    Parameters:
      `processor` - the processor that will be used to process the query node tree, this argument can be `null`
    See Also:
      - `getQueryNodeProcessor()`
      - `QueryNodeProcessor`

  - ### setSyntaxParser

    public void setSyntaxParser(SyntaxParser syntaxParser)
    Sets the text parser that will be used to parse the query string, it cannot be `null` .
    Parameters:
      `syntaxParser` - the text parser that will be used to parse the query string
    See Also:
      - `getSyntaxParser()`
      - `SyntaxParser`

  - ### setQueryBuilder

    public void setQueryBuilder(QueryBuilder queryBuilder)
    The query builder that will be used to build an object from the query node tree. It cannot be `null`.
    Parameters:
      `queryBuilder` - the query builder used to build something from the query node tree
    See Also:
      - `getQueryBuilder()`
      - `QueryBuilder`

  - ### getQueryConfigHandler

    public QueryConfigHandler getQueryConfigHandler()
    Returns the query configuration handler, which is used during the query node tree processing. It can be `null`.
    Returns:
      the query configuration handler used on the query processing, `null` if not query configuration handler is defined
    See Also:
      - `QueryConfigHandler`
      - `setQueryConfigHandler(QueryConfigHandler)`

  - ### getQueryBuilder

    public QueryBuilder getQueryBuilder()
    Returns the query builder used to build a object from the query node tree. The object produced by this builder is returned by `parse(String, String)`.
    Returns:
      the query builder
    See Also:
      - `setQueryBuilder(QueryBuilder)`
      - `QueryBuilder`

  - ### getSyntaxParser

    public SyntaxParser getSyntaxParser()
    Returns the text parser used to build a query node tree from a query string. The default text parser instance returned by this method is a `SyntaxParser`.
    Returns:
      the text parse used to build query node trees.
    See Also:
      - `SyntaxParser`
      - `setSyntaxParser(SyntaxParser)`

  - ### setQueryConfigHandler

    public void setQueryConfigHandler(QueryConfigHandler config)
    Sets the query configuration handler that will be used during query processing. It can be `null`. It's also set to the processor returned by `getQueryNodeProcessor()`.
    Parameters:
      `config` - the query configuration handler used during query processing, it can be `null`
    See Also:
      - `getQueryConfigHandler()`
      - `QueryConfigHandler`

  - ### parse

    public Object parse(String query, String defaultField) throws QueryNodeException
    Parses a query string to an object, usually some query object.
    In this method the three phases are executed:
    1st - the query string is parsed using the text parser returned by `getSyntaxParser()`, the result is a query node tree
    2nd - the query node tree is processed by the processor returned by `getQueryNodeProcessor()`
    3th - a object is built from the query node tree using the builder returned by `getQueryBuilder()`
    Parameters:
      `query` - the query string
      `defaultField` - the default field used by the text parser
    Returns:
      the object built from the query
    Throws:
      `QueryNodeException` - if something wrong happens along the three phases