#ifndef YMFILTERCHILDREN
#define YMFILTERCHILDREN
#include "ymfilter.h"
class YMFilterFactory
{
public:
    YMFilterFactory();
    ~YMFilterFactory();

    static YMFilter* getFilter(QMap<QString, QString> mapParam);
};



class YMOneDepthFilter:public YMFilter
{
protected:
    QMap<QString, int> Extractor(QMap<QString, int> mapResult);
    QMap<QString, int> KeywordLengthFilter(QMap<QString, int> mapResult);
    QMap<QString, int> KeywordFilter(QMap<QString, int> mapResult);
    QMap<QString, int> RankFilterSeparated(QMap<QString, int> mapResult);

public:
    YMOneDepthFilter();
    ~YMOneDepthFilter();

};


class YMTwoDepthFilter:public YMFilter
{
protected:
    QMap<QString, int> Extractor(QMap<QString, int> mapResult);
    QMap<QString, int> KeywordLengthFilter(QMap<QString, int> mapResult);
    QMap<QString, int> KeywordFilter(QMap<QString, int> mapResult);
    QMap<QString, int> RankFilterSeparated(QMap<QString, int> mapResult);
    QMap<QString, int> RankFilterALL(QMap<QString, int> mapResult);
public:
    YMTwoDepthFilter();
    ~YMTwoDepthFilter();

    QMap<QString, int> Exec(QMap<QString, int> mapResult);
};


class YMPlatformOneFilter:public YMFilter
{
protected:
    QMap<QString, int> Extractor(QMap<QString, int> mapResult);
    QMap<QString, int> KeywordLengthFilter(QMap<QString, int> mapResult);
    QMap<QString, int> KeywordFilter(QMap<QString, int> mapResult);
    QMap<QString, int> RankFilterSeparated(QMap<QString, int> mapResult);
    QMap<QString, int> RankFilterALL(QMap<QString, int> mapResult);
public:
    YMPlatformOneFilter();
    ~YMPlatformOneFilter();

};


class YMPlatformFilter:public YMFilter
{
protected:
    QMap<QString, int> Extractor(QMap<QString, int> mapResult);
    QMap<QString, int> KeywordLengthFilter(QMap<QString, int> mapResult);
    QMap<QString, int> KeywordFilter(QMap<QString, int> mapResult);
    QMap<QString, int> RankFilterSeparated(QMap<QString, int> mapResult);
    QMap<QString, int> RankFilterALL(QMap<QString, int> mapResult);
public:
    YMPlatformFilter();
    ~YMPlatformFilter();

    QMap<QString, int> Exec(QMap<QString, int> mapResult);
};



#endif // YMFILTERCHILDREN

