org.apache.lucene.queryParser.core
Class QueryParserHelper

java.lang.Object
  extended by 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