From bd9e6617827818fd043452c08c606f07b78014a0 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdesdk@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- kbabel/kbabeldict/modules/dbsearchengine2/chunk.h | 151 ++++++++++++++++++++++ 1 file changed, 151 insertions(+) create mode 100644 kbabel/kbabeldict/modules/dbsearchengine2/chunk.h (limited to 'kbabel/kbabeldict/modules/dbsearchengine2/chunk.h') diff --git a/kbabel/kbabeldict/modules/dbsearchengine2/chunk.h b/kbabel/kbabeldict/modules/dbsearchengine2/chunk.h new file mode 100644 index 00000000..5c5fcb93 --- /dev/null +++ b/kbabel/kbabeldict/modules/dbsearchengine2/chunk.h @@ -0,0 +1,151 @@ +// +// C++ Interface: chunk +// +// Description: +// +// +// Author: Andrea Rizzi , (C) 2003 +// +// Copyright: See COPYING file that comes with this distribution +// +// +#ifndef DBSE2_CHUNK_H +#define DBSE2_CHUNK_H +#include +#include +#include "database.h" + +/** + * Abstract class for text chunks. + * Examples of chunks are "Words" or "Sentences" + * This abstraction allow to use generic algorithm on chunks, + * like chunkByChunk translation or chunk indexing. + */ +class AbstractChunk +{ + public: + AbstractChunk(DataBaseInterface *_di) {di=_di;} + virtual ~AbstractChunk(); + /** + * This function should return a list of translation for the current chunk. + */ + virtual QValueList translations()=0; + + //FIXME: is this in the right place, better in factory? check that stuff + //virtual QValueList translationsFromReference(uint reference)=0; + virtual QValueList locationReferences()=0; + virtual void setLocationReferences(QValueList)=0; + virtual QString chunkString()=0; + + protected: + DataBaseInterface *di; +}; + +/** + * Concrete impl of Chunk, in this case chunks are words. + */ +class WordChunk : public AbstractChunk +{ + public: + WordChunk(DataBaseInterface *di,QString _word); + virtual QValueList translations(); + //virtual QValueList translationsFromReference(uint reference); + virtual QValueList locationReferences(); + virtual void setLocationReferences(QValueList); + virtual QString chunkString(){return word;} + + //static QValueList divide(QString); + private: + QString word; +}; + +/** + * Concrete impl of Chunk, in this case chunks are sentences. + */ +class SentenceChunk : public AbstractChunk +{ + public: + SentenceChunk(DataBaseInterface *di,QString _sentence); + virtual QValueList translations(); + //virtual QValueList translationsFromReference(uint reference); + virtual QValueList locationReferences(); + virtual void setLocationReferences(QValueList); + virtual QString chunkString(){return sentence;} + + // static QValueList divide(QString); + + private: + QString sentence; +}; + + +/********************************** + CHUNK FACTORIES +**********************************/ + + +class AbstractChunkFactory +{ + public: + AbstractChunkFactory(DataBaseInterface *_di) + { + di=_di; + } + virtual ~AbstractChunkFactory(){} + virtual QPtrList chunks()=0; + /** + Change th string and return the chunks + */ + virtual QPtrList chunks(const QString& s) + { + string=s; + return chunks(); + } + /** + * Returns the list of separators of last @ref chunks() call + */ + + virtual QStringList separators(){ return _separators;} + void setQuery(const QString& s) + { + string=s; + } + protected: + QString string; + QStringList _separators; + DataBaseInterface *di; +}; + +class WordChunkFactory : public AbstractChunkFactory +{ + public: + WordChunkFactory(DataBaseInterface *_di); + /** + YOU SHOULD DELETE THE CHUNKS!! + */ + virtual QPtrList chunks(); +}; + +class CaseBasedWordChunkFactory : public AbstractChunkFactory +{ + public: + CaseBasedWordChunkFactory(DataBaseInterface *_di); + /** + YOU SHOULD DELETE THE CHUNKS!! + */ + virtual QPtrList chunks(); +}; + +class SentenceChunkFactory : public AbstractChunkFactory +{ + public: + SentenceChunkFactory(DataBaseInterface *_di); + + /** + YOU SHOULD DELETE THE CHUNKS!! + */ + virtual QPtrList chunks(); +}; + + +#endif //_CHUNK_H_ -- cgit v1.2.1