no.sesat.search.mode.command.querybuilder
Class AbstractQueryBuilder

java.lang.Object
  extended by no.sesat.commons.visitor.AbstractReflectionVisitor
      extended by no.sesat.search.mode.command.querybuilder.AbstractQueryBuilder
All Implemented Interfaces:
no.sesat.commons.visitor.Visitor, QueryBuilder
Direct Known Subclasses:
BaseFilterBuilder, InfixQueryBuilder, PrefixQueryBuilder

public abstract class AbstractQueryBuilder
extends no.sesat.commons.visitor.AbstractReflectionVisitor
implements QueryBuilder

Abstract QueryBuilder providing basic support for mantaining context and stringBuilder fields (and related methods).

Any instance will have getQuery(..) called multiple times. It is therefore paramount that inside this method state fields are reset before the visitor is visited.
For example a subclass will override getQuery(..) such:

       @Override
       public String getQueryString() {
           // myVariable needs to be reset before every visit.
           myVariable = 0;
           return super.getQueryString();
       }
 

Version:
$Id: AbstractQueryBuilder.java 7225 2009-04-09 00:32:20Z ssmiweve $

Nested Class Summary
 
Nested classes/interfaces inherited from interface no.sesat.search.mode.command.querybuilder.QueryBuilder
QueryBuilder.Context
 
Field Summary
 
Fields inherited from class no.sesat.commons.visitor.AbstractReflectionVisitor
VISIT_METHOD_IMPL
 
Constructor Summary
AbstractQueryBuilder(QueryBuilder.Context cxt, QueryBuilderConfig config)
           
 
Method Summary
protected  void appendToQueryRepresentation(char addition)
           
protected  void appendToQueryRepresentation(CharSequence addition)
           
protected  String escape(String string)
          Escapes any reserved words (including those fielded).
protected  QueryBuilderConfig getConfig()
           
protected  QueryBuilder.Context getContext()
           
protected  String getEscapedTransformedTerm(Clause clause)
          Gets the transformed term, escaping any reserved words.
protected  int getQueryRepresentationLength()
           
 String getQueryString()
          The Query String built from the Query's transformed clauses.
protected  Collection<String> getWordsToEscape()
           
protected  void insertToQueryRepresentation(int offset, CharSequence addition)
           
protected  boolean isEmptyLeaf(Clause clause)
           
protected  boolean isNextLeafInsideNotClause(Clause clause)
           
protected  void visitImpl(XorClause clause)
           
 
Methods inherited from class no.sesat.commons.visitor.AbstractReflectionVisitor
visit, visitImpl
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface no.sesat.commons.visitor.Visitor
visit
 

Constructor Detail

AbstractQueryBuilder

public AbstractQueryBuilder(QueryBuilder.Context cxt,
                            QueryBuilderConfig config)
Method Detail

getQueryString

public String getQueryString()
Description copied from interface: QueryBuilder
The Query String built from the Query's transformed clauses.

Specified by:
getQueryString in interface QueryBuilder
Returns:
string built from the Query's transformed clauses, or "*".

getContext

protected final QueryBuilder.Context getContext()

getConfig

protected QueryBuilderConfig getConfig()

getEscapedTransformedTerm

protected String getEscapedTransformedTerm(Clause clause)
Gets the transformed term, escaping any reserved words.

Parameters:
clause -
Returns:

escape

protected String escape(String string)
Escapes any reserved words (including those fielded). Case-insensitive. How to actually escape any matching words is left to the context to define via context.escape(word)

Parameters:
string -
Returns:
possibilly escaped string

getWordsToEscape

protected Collection<String> getWordsToEscape()

appendToQueryRepresentation

protected final void appendToQueryRepresentation(CharSequence addition)

appendToQueryRepresentation

protected final void appendToQueryRepresentation(char addition)

getQueryRepresentationLength

protected final int getQueryRepresentationLength()

insertToQueryRepresentation

protected final void insertToQueryRepresentation(int offset,
                                                 CharSequence addition)

isEmptyLeaf

protected boolean isEmptyLeaf(Clause clause)

isNextLeafInsideNotClause

protected boolean isNextLeafInsideNotClause(Clause clause)

visitImpl

protected void visitImpl(XorClause clause)


Copyright © 2005-2009 Schibsted ASA. All Rights Reserved.