#ifndef YMFILTER
#define YMFILTER
#include <QString>
#include <QMap>
#include <QStringList>
class YMFilter
{
protected:
    QMap<QString, QString> m_mapParam;

protected:

    virtual QMap<QString, int> Extractor(QMap<QString, int> mapResult) = 0;
    virtual QMap<QString, int> KeywordLengthFilter(QMap<QString, int> mapResult) = 0;
    virtual QMap<QString, int> KeywordFilter(QMap<QString, int> mapResult) = 0;
    virtual QMap<QString, int> RankFilterALL(QMap<QString, int> mapResult);
    virtual QMap<QString, int> RankFilterSeparated(QMap<QString, int> mapResult) = 0;
    QMap<QString, int> CounterFilter(QMap<QString, int> mapResult);
    void AppendMap(QMap<QString, int> &Dest, QMap<QString, int> &Source);


public:
    virtual QMap<QString, int> Exec(QMap<QString, int> mapResult);
    void setParam(QMap <QString, QString> mapParam);
    void clearParam();
    YMFilter();
    ~YMFilter();

};



#endif // YMFILTER

