/**************************************************************************** ** ** Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team. ** All rights reserved. ** ** Portion Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** ** This file may be used under the terms of the GNU Lesser General Public ** License version 2.1 as published by the Free Software Foundation and ** appearing in the file LICENSE.LGPL included in the packaging of this file. ** Please review the following information to ensure the GNU Lesser General ** Public License version 2.1 requirements will be met: ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ****************************************************************************/ #ifndef QQUERYPARSER_P_H #define QQUERYPARSER_P_H // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists for the convenience // of the help generator tools. This header file may change from version // to version without notice, or even be removed. // // We mean it. // #include "qreader_p.h" #include "qanalyzer_p.h" #include "qclucene_global_p.h" #include #include #include #include CL_NS_DEF(queryParser) class QueryParser; CL_NS_END CL_NS_USE(queryParser) QT_BEGIN_NAMESPACE class QCLuceneQuery; class QCLuceneMultiFieldQueryParser; class QHELP_EXPORT QCLuceneQueryParserPrivate : public QSharedData { public: QCLuceneQueryParserPrivate(); QCLuceneQueryParserPrivate(const QCLuceneQueryParserPrivate &other); ~QCLuceneQueryParserPrivate(); QueryParser *queryParser; bool deleteCLuceneQueryParser; private: QCLuceneQueryParserPrivate &operator=(const QCLuceneQueryParserPrivate &other); }; class QHELP_EXPORT QCLuceneQueryParser { public: QCLuceneQueryParser(const QString &field, QCLuceneAnalyzer &analyzer); virtual ~QCLuceneQueryParser(); QCLuceneQuery* parse(const QString &query); QCLuceneQuery* parse(QCLuceneReader &reader); static QCLuceneQuery* parse(const QString &query, const QString &field, QCLuceneAnalyzer &analyzer); QCLuceneAnalyzer getAnalyzer(); QString getField(); protected: friend class QCLuceneMultiFieldQueryParser; QSharedDataPointer d; private: QString field; QCLuceneAnalyzer analyzer; }; class QHELP_EXPORT QCLuceneMultiFieldQueryParser : public QCLuceneQueryParser { public: enum FieldFlags { NORMAL_FIELD = 0, REQUIRED_FIELD = 1, PROHIBITED_FIELD = 2 }; QCLuceneMultiFieldQueryParser(const QStringList &fieldList, QCLuceneAnalyzer &analyzer); ~QCLuceneMultiFieldQueryParser(); static QCLuceneQuery *parse(const QString &query, const QStringList &fieldList, QCLuceneAnalyzer &analyzer); static QCLuceneQuery *parse(const QString &query, const QStringList &fieldList, QList flags, QCLuceneAnalyzer &analyzer); }; QT_END_NAMESPACE #endif // QQUERYPARSER_P_H