## org.apache.lucene.queryParser.core
Class QueryParserHelper

    java.lang.Object
      org.apache.lucene.queryParser.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
`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
`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.
`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 Detail

### 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 Detail

### 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